Loading

上一页 1 ··· 35 36 37 38 39 40 41 42 43 ··· 76 下一页
摘要: 思路 方法一:暴力法 对于字符串s,用f[i]表示以s[i]开头的无重复字符的字符串最大长度, 逐一求出f[0], f[1], ... ,f[s.length()-1] ,最后返回这些值中的最大值即可。 1 class Solution { 2 public: 3 int lengthOfLonge 阅读全文
posted @ 2020-11-08 20:02 拾月凄辰 阅读(138) 评论(0) 推荐(0)
摘要: 思路 方法:动态规划 比较明显的动态规划问题。设f[i][j]表示从(0,0)走到(i, j)获取的最大价值。 状态转移方程为:f(x, y) = grid(x,y) + max {f(x-1,y), f(x, y-1)} 。 空间优化:这里不使用额外的数组f,而就地更改grid数组,可以将空间复杂 阅读全文
posted @ 2020-11-08 19:02 拾月凄辰 阅读(64) 评论(0) 推荐(0)
摘要: 思路 方法一:暴力法 使用深度优先搜索枚举出全部情况,试探每一种可能性。 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 拾月凄辰 阅读(100) 评论(0) 推荐(0)
摘要: 本文转载自:https://blog.csdn.net/u011947630/article/details/104691611 选择排序、冒泡排序等算法的时间复杂度都比较好理解,但不是很清楚快速排序的时间复杂度为什么是O(nlogn)。从《算法图解》中看到的思路,很赞,解决了一直以来的疑惑。 引用 阅读全文
posted @ 2020-11-08 14:34 拾月凄辰 阅读(2451) 评论(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 拾月凄辰 阅读(67) 评论(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 拾月凄辰 阅读(118) 评论(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 拾月凄辰 阅读(116) 评论(0) 推荐(0)
摘要: 思路 方法一:简单排序 将数字存储在可调整大小的容器中。每次需要输出中间值时,对容器进行排序并输出中间值。 复杂度分析 时间复杂度:O(nlogn)+O(1)≃O(nlogn)。 添加一个数字对于一个有效调整大小方案的容器来说需要花费 O(1) 的时间。找到中间值主要取决于发生的排序。对于标准比较排 阅读全文
posted @ 2020-11-06 23:38 拾月凄辰 阅读(92) 评论(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 拾月凄辰 阅读(86) 评论(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 拾月凄辰 阅读(742) 评论(0) 推荐(0)
上一页 1 ··· 35 36 37 38 39 40 41 42 43 ··· 76 下一页