摘要: 提示 给定二叉树的节点数目在 到 之间。 节点值在 到 之间。 思路 首先通过List集合记录 二叉树中从根节点到各个叶子节点的所有路径 判断每条路径是否为 伪回文路径 若路径长度为奇数,则该路径中 相同值的节点数目除只有一个为奇数之外,其余数目都是偶数 若路径长度为偶数,则该路径中 相同值的节点数 阅读全文
posted @ 2020-05-24 16:43 YH_Simon 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 提示 `1 =s.length()){ for(char c:s.toCharArray()){ if(c=='a'||c=='e'||c=='i'||c=='o'||c=='u'){ ans++; } } return ans; }else{ int len=0; //预处理 for(int i= 阅读全文
posted @ 2020-05-24 15:57 YH_Simon 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 滑动窗口+哈希 思路 通过两个HashMap分别统计t中各字符的数量 滑动窗口中 含t中字符的数量 滑动窗口不满足要求时,右指针向右移动 窗口不断扩张 滑动窗口满足要求时,左指针向右移动 窗口收缩 在窗口滑动过程中,同时记录并更新符合要求且宽度最小的 窗口信息 通过 substring(ansL,a 阅读全文
posted @ 2020-05-23 18:09 YH_Simon 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 前缀和+状态压缩 代码 官方代码中,p[0]=0?计算长度i+1 pos[status] 和 pos[status]=i+1不是特别理解 参考链接: "江户川柯基:简单的思路" "官方题解" 阅读全文
posted @ 2020-05-21 16:39 YH_Simon 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 双指针 "官方思路" 代码 阅读全文
posted @ 2020-05-19 22:08 YH_Simon 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 枚举 思路 遍历所有情况,不断更新最大值 能解题,但时间复杂度O(n^2) 代码 动态规划 思路 参考 "画解算法:152.乘积最大子序列" 遍历数组时计算当前最大值,不断更新 令imax为当前最大值,则当前最大值为 由于存在负数,那么乘以负数 会导致最大的变最小的,最小的变最大的。 因此需要维护当 阅读全文
posted @ 2020-05-18 20:42 YH_Simon 阅读(129) 评论(0) 推荐(0) 编辑
摘要: Map记录已遍历过的值 思路 当分母相同时,分子从小到大一次递增;随着分母依次增大,肯定会出现值相同的分数,举个例子。 如4/6并不是最简分数,且4/6=2/3,而2/3肯定比4/6先 构成的。 所以用HashMap记录已经遍历过的最简分数, 当构成新的分数时,新分数的值是否在map中存在。若存在, 阅读全文
posted @ 2020-05-17 21:00 YH_Simon 阅读(346) 评论(0) 推荐(0) 编辑
摘要: 提示 核心思路 二叉树+DFS 代码 优化 阅读全文
posted @ 2020-05-17 20:15 YH_Simon 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 提示 以大写字母开头,然后包含若干小写字母以及单词间的单个空格。 1s[j+1].length()){ String tmp=s[j]; s[j]=s[j+1]; s[j+1]=tmp; } } } char[] cs=s[0].toCharArray(); cs[0] =32; String fi 阅读全文
posted @ 2020-05-17 16:28 YH_Simon 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 整体思路 解题核心是处理一个集合是否为另一个集合的子集,且该判断过程对时间复杂度影响很大。 细节注意 提示要求返回清单,其下标需要按升序排列 锁定目标集合,遍历其他集合是否包含 目标集合 直接使用List类的containsAll方法 代码 HashSet重构List集合 由于上面超时,关键是由调用 阅读全文
posted @ 2020-05-17 16:25 YH_Simon 阅读(170) 评论(0) 推荐(0) 编辑