2020年8月11日

剑指 Offer 31. 栈的压入、弹出序列 - 8月11日

摘要: 题目 剑指 Offer 31. 栈的压入、弹出序列 我的思路 基本思路:模拟压栈过程,深搜 有没有数学上的规律?如果pushed序列中a在b之前,并且popped序列中a比b先弹出,那么a比所有b之后的数字先弹出 我的实现 class Solution { public: int lenPushed 阅读全文

posted @ 2020-08-11 12:09 BoysCryToo 阅读(112) 评论(0) 推荐(0) 编辑

2020年8月10日

696. 计数二进制子串 - 8月10日

摘要: 题目 696. 计数二进制子串 我的思路 满足要求的子串一定出现在0-1或者1-0变化的位置 所以记录每两次变化之间单一字符的数量即可。 我的实现 class Solution { public: int countBinarySubstrings(string s) { int preCount 阅读全文

posted @ 2020-08-10 14:25 BoysCryToo 阅读(105) 评论(0) 推荐(0) 编辑

剑指 Offer 26. 树的子结构 - 8月10日

摘要: 题目 剑指 Offer 26. 树的子结构 我的思路 遍历A的过程中,若节点val和B的根节点val相同,那么按照B的结构对A树进行比对 我的实现 /** * Definition for a binary tree node. * struct TreeNode { * int val; * Tr 阅读全文

posted @ 2020-08-10 14:21 BoysCryToo 阅读(92) 评论(0) 推荐(0) 编辑

2020年8月9日

99. 恢复二叉搜索树(困难) - 8月8日

摘要: 题目 99. 恢复二叉搜索树 我的思路 如果不考虑空间复杂度,比较简单:中序遍历一次。因为树的某两个节点被调换了顺序,所以遍历得到的序列中也会有两个节点被调换顺序从而破坏了递增的顺序。 有两种情况:一种是两个原本就相邻(遍历产生的序列中相邻)的节点被调换顺序,第二种是原本不相邻的节点被调换顺序。两种 阅读全文

posted @ 2020-08-09 17:32 BoysCryToo 阅读(128) 评论(0) 推荐(0) 编辑

93. 复原IP地址 - 8月9日

摘要: 题目 93. 复原IP地址 我的思路 比较明显,递归深搜处理比较方便。设定一个指针指向字符串首,每次可以后移1,2,或3个位置。总共需要后移4次,且刚好滑过整个字符串。同时要保证每次划过的数字在0-255之间即可。 我的实现 class Solution { public: vector<strin 阅读全文

posted @ 2020-08-09 14:21 BoysCryToo 阅读(121) 评论(0) 推荐(0) 编辑

2020年8月7日

剑指 Offer 20. 表示数值的字符串 - 8月7日

摘要: 题目 剑指 Offer 20. 表示数值的字符串 我的思路 有限状态自动机 我的实现 class Solution { public: int getInput(char c) { if(c==' ')return 0; else if(c-'0'>=0&&c-'0'<=9)return 1; el 阅读全文

posted @ 2020-08-07 15:57 BoysCryToo 阅读(129) 评论(0) 推荐(0) 编辑

100. 相同的树 - 8月7日

摘要: 题目 100. 相同的树 我的思路实现 两棵树同时遍历,比较 1.深度优先,递归 2.广度优先,队列 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNod 阅读全文

posted @ 2020-08-07 14:32 BoysCryToo 阅读(108) 评论(0) 推荐(0) 编辑

2020年8月6日

336. 回文对 - 8月6日

摘要: 题目 336. 回文对 我的思路 我的思路: 两两组合,再依次检查是否组合后的串是否是回文串。 检查回文串的方法:两个指针分别指向首和尾巴,若字符匹配则向中间靠近,直到不匹配或者靠拢 很明显,我的做法复杂度过高,运行超时了,如何优化? 我的做法的复杂度是,n*n*m,n是单词总数,m是字符串的平均长 阅读全文

posted @ 2020-08-06 23:06 BoysCryToo 阅读(108) 评论(0) 推荐(0) 编辑

2020年8月5日

12. 整数转罗马数字(贪心!) - 8月5日

摘要: 题目 12. 整数转罗马数字 我的思路 对十进制数字,从高位到低位逐个转换即可? 我的实现 class Solution { public: string intToRoman(int num) { string result; while(num>=1000){ num-=1000; result 阅读全文

posted @ 2020-08-05 13:25 BoysCryToo 阅读(262) 评论(0) 推荐(0) 编辑

337. 打家劫舍 III - 8月5日

摘要: 题目 337. 打家劫舍 III 我的思路 比较明显的动态规划 后序遍历: 当前节点作为根节点的最大和 = 左子树 maxSum(root) = max{maxSum(root.left)+maxSum(root.left),root.val+maxSum(root.left.left)...} 使 阅读全文

posted @ 2020-08-05 12:02 BoysCryToo 阅读(91) 评论(0) 推荐(0) 编辑

导航