摘要: 原题思路:Dfs.class Solution { public: vector inorderTraversal(TreeNode *root) { vector vec; dfs(root, vec); return vec; } ... 阅读全文
posted @ 2018-09-24 22:29 Ruohua3kou 阅读(84) 评论(0) 推荐(0) 编辑
摘要: 原题思路:按频率最大的字母来分块,频率最大的字母个数-1为分成的块数,每一块个数为n+1比如AAABBCE,n=2, 则分为A…A… +AAAABBBCCEE,n=2,则分为AB…AB… +AB答案 = MAX(原数组长度,所有分块的长度和 + 频率最大的字... 阅读全文
posted @ 2018-09-24 17:40 Ruohua3kou 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 原题思路:状态转移出售股票的状态,最大利润有两种可能。一,和昨天一样不动;二,昨天持有的股票今天卖掉。sell[i] = max(sell[i-1],buy[i-1] + prices[i]);购买股票的状态,最大利润有两种可能。一,和昨天一样不动;二,两天... 阅读全文
posted @ 2018-09-24 15:57 Ruohua3kou 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 原题链接很水的一道题,就是数组内部交换。水题就想着减少复杂度嘛,于是学到一种交换写法。class Solution{public: vector sortArrayByParity(vector &A) { int i = 0, j = A.siz... 阅读全文
posted @ 2018-09-23 23:11 Ruohua3kou 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 原题地址思路:和leetcode105题差不多,这道题是给中序和后序,求出二叉树。解法一:思路和105题差不多,只是pos是从后往前遍历,生成树顺序也是先右后左。class Solution { public: TreeNode *buildTree(ve... 阅读全文
posted @ 2018-09-23 00:38 Ruohua3kou 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 原题思路一:题目要求O(log (m+n))复杂度,一开始想到的是(m+n),遂试了下,发现居然也过了。。新建一个数组,排序保存两个数组中的元素(mid+1)个,没有什么难度,防越界,注意奇偶数。class Solution{public: double ... 阅读全文
posted @ 2018-09-20 12:06 Ruohua3kou 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 原题链接求最长不连续子序列利用map存储每一个字符上一次出现的位置,遍历string,比较 当前位置与上一次出现该字母的位置之差 和 记录的最大值 的大小修改最大值。class Solution{public: map maps; int lengthO... 阅读全文
posted @ 2018-09-17 20:56 Ruohua3kou 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 原题题意: 根据先序和中序得到二叉树(假设无重复数字)思路: 先手写一次转换过程,得到思路。 即从先序中遍历每个元素,(创建一个全局索引,指向当前遍历到的元素)在中序中找到该元素作为当前的root,以该节点左边所有元素作为当前root的左支,右同理。 重复分... 阅读全文
posted @ 2018-09-16 11:23 Ruohua3kou 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 原题链接水题 深度搜索每一节点的左右深度,左右深度差大于1就返回false。class Solution { public: bool isBalanced(TreeNode *root) { bool flag = true; if (!ro... 阅读全文
posted @ 2018-09-16 10:42 Ruohua3kou 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 原题水题 唯一注意的点就是数字溢出class Solution{public: int reverse(int x) { long long MAX = ((long long)1 MAX || a < MIN ? 0 : a; }}; ... 阅读全文
posted @ 2018-09-15 21:06 Ruohua3kou 阅读(94) 评论(0) 推荐(0) 编辑