Loading

摘要: 思路 方法一:暴力法 对于字符串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 拾月凄辰 阅读(118) 评论(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 拾月凄辰 阅读(55) 评论(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 拾月凄辰 阅读(90) 评论(0) 推荐(0) 编辑
摘要: 本文转载自:https://blog.csdn.net/u011947630/article/details/104691611 选择排序、冒泡排序等算法的时间复杂度都比较好理解,但不是很清楚快速排序的时间复杂度为什么是O(nlogn)。从《算法图解》中看到的思路,很赞,解决了一直以来的疑惑。 引用 阅读全文
posted @ 2020-11-08 14:34 拾月凄辰 阅读(2193) 评论(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 拾月凄辰 阅读(55) 评论(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 拾月凄辰 阅读(107) 评论(0) 推荐(0) 编辑