上一页 1 ··· 37 38 39 40 41 42 43 44 45 ··· 62 下一页
摘要: 思路就是定义两个链表,一个放大的,一个放小的,最后将两个连起来,注意细节问题。 ListNode *partionList(ListNode *head, int value) { ListNode left_dummy(-1); ListNode right_dummy(-1); auto lef 阅读全文
posted @ 2016-05-18 15:15 牧马人夏峥 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 这题用需要非常细心,用头插法移动需要考虑先移动哪个,只需三个指针即可。 ListNode *reverseList(ListNode *head, int m, int n) { ListNode dummy(-1); dummy.next = head; ListNode *prev = &dum 阅读全文
posted @ 2016-05-18 14:45 牧马人夏峥 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 这题并不难,但需要注意细节。 ListNode* addTwo(ListNode *l1, ListNode *l2) { ListNode dummy(-1); int carry = 0; ListNode *prev = &dummy; for (ListNode *pa = l1, *pb 阅读全文
posted @ 2016-05-18 14:00 牧马人夏峥 阅读(79) 评论(0) 推荐(0) 编辑
摘要: 看见这题我的第一反应是用哈希来做,不过更简洁的做法是用异或来处理,只要是偶数个都为0(0和任意数异或仍为数本身)。 int singleNumber(int A[], int n) { int x = 0; for (int i = 0; i < n; i++) x ^= A[i]; return 阅读全文
posted @ 2016-05-17 15:14 牧马人夏峥 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 这题的思路很巧妙,分两遍扫描,将元素分别和左右元素相比较。 int candy(vector<int> &rattings) { int n = rattings.size(); vector<int> incrment(n); int inc = 1; //和左边比较 for (int i = 1 阅读全文
posted @ 2016-05-17 15:02 牧马人夏峥 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 这题的思路很巧妙,用两个变量,一个变量衡量当前指针是否有效,一个衡量整个数组是否有解,需要好好体会。 int gasStation(vector<int> &gas, vector<int> &cost) { int total = 0; int j; int sum = 0; for (int i 阅读全文
posted @ 2016-05-16 14:40 牧马人夏峥 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 设置两个布尔数组,记录行和列是否存在0。需要注意的是如何将行或列设为0. void setZeros(vector<vector<int>> &matrix) { int m = matrix.size(); int n = matrix[0].size(); vector<bool>row(m, 阅读全文
posted @ 2016-05-16 14:21 牧马人夏峥 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 这题需要注意的是最后的进位 vector<int> plusOne(vector<int>& nums,int num) { add(nums, num); } void add(vector<int> &nums, int num) { int c = num; for (auto it = nu 阅读全文
posted @ 2016-05-16 13:21 牧马人夏峥 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 这题需要搞清楚矩阵元素的位置关系,尤其是副对角线元素,沿着副对角线元素 void rotateImage(vector<vector<int>> &matrix) { int n = matrix.size(); //沿着副对角线翻转 for (int i = 0; i < n;i++) for ( 阅读全文
posted @ 2016-05-15 20:47 牧马人夏峥 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 这题不太好想。可以先扫描找到最高的柱子,然后分别处理两边:记录下当前的局部最高点,如果当前点小于局部最高点,加上, 反则,替换当前点为局部最高点。 int trapWater(int A[], int n) { int peak = 0; int max = 0; int water = 0; fo 阅读全文
posted @ 2016-05-15 20:15 牧马人夏峥 阅读(301) 评论(0) 推荐(0) 编辑
上一页 1 ··· 37 38 39 40 41 42 43 44 45 ··· 62 下一页