摘要: 题目: 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。 示例: 输入:["h","e","l 阅读全文
posted @ 2019-01-25 15:10 manch1n 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 因为在写一些算法题,一般的在线编译器好像都是用vector作为参数,所以有必要对vector总结一下: 7.3 vector vector的本质是一个动态数组(dynamic array),类似于c用malloc分配空间。在<vector>头文件内,vector的定义如下: 注意:第二个模板参数可省 阅读全文
posted @ 2019-01-25 00:17 manch1n 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 其实就是书上简单的多线程生产者-消费者模型 结果如下: 阅读全文
posted @ 2019-01-24 22:56 manch1n 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 题目: 给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。 示例: 思路: 这道题我实在是想不出来,查了一下数学原理:上下翻转,沿对称轴变换即可,如下: 阅读全文
posted @ 2019-01-24 19:10 manch1n 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 题目: 判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。 上图是一个部分填充的有效的数独。 数独部分空格内已填入了数字,空白格用 '.' 表示。 示例: 输入: [ ["8","3",".",".","7",".",".",".","."] , ["6","." 阅读全文
posted @ 2019-01-24 18:35 manch1n 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 题目: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例: 给定 nums = [2, 7, 11, 15], target = 9 因为 阅读全文
posted @ 2019-01-24 16:57 manch1n 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 题目: 给定一个数组nums,编写一个函数将所有0移动到数组的末尾,同时保持非零元素的相对顺序。 示例: 输入: [0,1,0,3,12] 输出: [1,3,12,0,0] 思路: 典型的双指针题目,用一个指针找到0,用另一个指针找到非零,两者交换,同时保证非零的指针较小。 时间复杂度为O(n),看 阅读全文
posted @ 2019-01-24 15:35 manch1n 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 题目: 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。 示例: 输入: [1,2,3] 输出: [1,2,4] 解释: 输入数组表示数字 123。 思路: 因为帮过舍友 阅读全文
posted @ 2019-01-24 12:46 manch1n 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 1. gcc -E source_file.c-E,只执行到预编译。直接输出预编译结果。 2. gcc -S source_file.c -S,只执行到源代码到汇编代码的转换,输出汇编代码。 3. gcc -c source_file.c-c,只执行到编译,输出目标文件。 4. gcc (-E/S/ 阅读全文
posted @ 2019-01-23 22:57 manch1n 阅读(663) 评论(0) 推荐(1) 编辑
摘要: 2.3.1 竞争条件 举个栗子:有两个进程同时对同一内存或磁盘上的文件进行读写,那么假设进程A先读了一段,此时内核调度让进程B进行写,那么下一次A读的就不是原来的数据了。类似这样的情况,两个或多个进程同时读写某些共享数据,而最后的结果取决于进程运行的精确时序,称为竞争条件。 2.3.2 临界区 我们 阅读全文
posted @ 2019-01-23 14:11 manch1n 阅读(279) 评论(0) 推荐(0) 编辑