上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 67 下一页
摘要: 二路归并。 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ clas 阅读全文
posted @ 2021-07-23 11:14 Dazzling! 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 快慢指针。 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ clas 阅读全文
posted @ 2021-07-23 10:51 Dazzling! 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 双指针。 class Solution { public: vector<int> exchange(vector<int>& nums) { int n = nums.size(); int i = 0, j = n - 1; while (i < j) { while (i < j && num 阅读全文
posted @ 2021-07-23 10:31 Dazzling! 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 快速幂。 class Solution { public: double qpow(double x, long long n) { double res = 1; while (n) { if (n & 1) res *= x; x = x * x; n >>= 1; } return res; 阅读全文
posted @ 2021-07-21 20:27 Dazzling! 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 方法一:动态规划 对于的正整数 \(n\),当 \(n \ge 2\) 时,可以拆分成至少两个正整数的和。令 \(k\) 是拆分出的第一个正整数,则剩下的部分是 \(n-k\),\(n-k\) 可以不继续拆分,或者继续拆分成至少两个正整数的和。由于每个正整数对应的最大乘积取决于比它小的正整数对应的最 阅读全文
posted @ 2021-07-21 12:49 Dazzling! 阅读(155) 评论(0) 推荐(0) 编辑
摘要: DFS。 class Solution { public: int n, m; int single_sum(int x) { int res = 0; while (x) { res += x % 10; x /= 10; } return res; } int sum(int x, int y) 阅读全文
posted @ 2021-07-21 11:21 Dazzling! 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 回溯法。 class Solution { public: int n, m; int dx[4] = {-1, 0, 1, 0}, dy[4] = {0, 1, 0, -1}; bool check(int x, int y) { return x >= 0 && x < n && y >= 0 阅读全文
posted @ 2021-07-21 10:46 Dazzling! 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 一个包含重复元素的升序数组在经过旋转之后,可以得到下面可视化的折线图: 其中横轴表示数组元素的下标,纵轴表示数组元素的值。图中标出了最小值的位置,是我们需要查找的目标。 我们考虑数组中的最后一个元素 x:在最小值右侧的元素,它们的值一定都小于等于 x;而在最小值左侧的元素,它们的值一定都大于等于 x 阅读全文
posted @ 2021-07-20 20:29 Dazzling! 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 一个不包含重复元素的升序数组在经过旋转之后,可以得到下面可视化的折线图: 其中横轴表示数组元素的下标,纵轴表示数组元素的值。图中标出了最小值的位置,是我们需要查找的目标。 我们考虑数组中的最后一个元素 x:在最小值右侧的元素(不包括最后一个元素本身),它们的值一定都严格小于 x;而在最小值左侧的元素 阅读全文
posted @ 2021-07-20 20:18 Dazzling! 阅读(39) 评论(0) 推荐(0) 编辑
摘要: 维护两个栈,第一个栈支持插入操作,第二个栈支持删除操作。 根据栈先进后出的特性,我们每次往第一个栈里插入元素后,第一个栈的顶部元素是最后插入的元素,第一个栈的底部元素是下一个待删除的元素。 为了维护队列先进先出的特性,我们引入第二个栈,用第二个栈维护待删除的元素,在执行删除操作的时候我们首先看下第二 阅读全文
posted @ 2021-07-19 11:41 Dazzling! 阅读(16) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 67 下一页