Loading

上一页 1 ··· 34 35 36 37 38 39 40 41 42 ··· 75 下一页
摘要: 思路 方法一:暴力法 使用深度优先搜索枚举出全部情况,试探每一种可能性。 1 class Solution { 2 public: 3 int translateNum(int num) { 4 string s = to_string(num); 5 int res = 0; 6 dfs(s, r 阅读全文
posted @ 2020-11-08 18:45 拾月凄辰 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 本文转载自:https://blog.csdn.net/u011947630/article/details/104691611 选择排序、冒泡排序等算法的时间复杂度都比较好理解,但不是很清楚快速排序的时间复杂度为什么是O(nlogn)。从《算法图解》中看到的思路,很赞,解决了一直以来的疑惑。 引用 阅读全文
posted @ 2020-11-08 14:34 拾月凄辰 阅读(2281) 评论(0) 推荐(0) 编辑
摘要: 思路 本题解来自:面试题45. 把数组排成最小的数(自定义排序,清晰图解) 方法:自定义排序 1 class Solution { 2 public: 3 string minNumber(vector<int>& nums) { 4 vector<string> vs; 5 for(int i = 阅读全文
posted @ 2020-11-08 12:43 拾月凄辰 阅读(56) 评论(0) 推荐(0) 编辑
摘要: 思路 本题解来自:面试题44. 数字序列中某一位的数字(迭代 + 求整 / 求余,清晰图解) 方法:找规律 1 class Solution { 2 public: 3 int findNthDigit(int n) { 4 int digit = 1; 5 long long start = 1; 阅读全文
posted @ 2020-11-08 11:52 拾月凄辰 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 思路 这题如果直接用暴力法,1~n逐一判断,每个数逐位判断需要O(L)的时间,其中L为n的位数,所以总的时间复杂度为O(L*n),这显然会超时。 方法:逐位判断,找规律 假设n是4位数abcd, 即n=abcd,从右往左逐位分析: - 对于n中的第4位数d: - 如果d ≥ 1,对于1~n中第4位数 阅读全文
posted @ 2020-11-07 14:01 拾月凄辰 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 思路 方法一:简单排序 将数字存储在可调整大小的容器中。每次需要输出中间值时,对容器进行排序并输出中间值。 复杂度分析 时间复杂度:O(nlogn)+O(1)≃O(nlogn)。 添加一个数字对于一个有效调整大小方案的容器来说需要花费 O(1) 的时间。找到中间值主要取决于发生的排序。对于标准比较排 阅读全文
posted @ 2020-11-06 23:38 拾月凄辰 阅读(77) 评论(0) 推荐(0) 编辑
摘要: 思路 方法一:动态规划 1 class Solution { 2 public: 3 int maxSubArray(vector<int>& nums) { 4 //memo[i]表示以nums[i]结尾并且包含nums[i]的子数组的最大和 5 vector<int> memo(nums.siz 阅读全文
posted @ 2020-11-06 17:18 拾月凄辰 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 组合数C(n,m)的大小有以下两种计算方法: (1) 直接用定义求,时间复杂度:O(m) int combi(int n, int m){ //求组合数的函数 int res = 1; for(int i = 0; i < m; ++i) { res *= n - i; res /= i + 1; 阅读全文
posted @ 2020-11-05 09:20 拾月凄辰 阅读(643) 评论(0) 推荐(0) 编辑
摘要: 思路 贪心思想,先对小孩的胃口和饼干的尺寸进行从小到大排序,每次选出能满足该小孩的最小饼干。 1 class Solution { 2 public: 3 int findContentChildren(vector<int>& g, vector<int>& s) { 4 // 先对小孩和饼干从小 阅读全文
posted @ 2020-11-05 08:44 拾月凄辰 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 思路 贪心算法 因为区间的右边界end越小,可以给后面留到的空间就越大。所以按照区间的右边界从小到大进行排序,每次都选右边界最小并且左边界大于前一个区间右边界的区间,最后可以累加得到最大不重叠区间的个数m,最后用总区间个数-m即为要删去的最小区间数。 1 class Solution { 2 pri 阅读全文
posted @ 2020-11-05 08:42 拾月凄辰 阅读(222) 评论(0) 推荐(0) 编辑
上一页 1 ··· 34 35 36 37 38 39 40 41 42 ··· 75 下一页