摘要: 这个题最重要的是理解到,最后返回的结果是“分割”方法,分割出来的结果暂存: 1 (StringBuilder) sb.append(partition[i]); 只有是回文串的sb,才能加入path中,如果当前的分割方法切出来的这个子串已经不是回文串,那么在回溯树中的这个分支直接砍掉不进回溯: 1 阅读全文
posted @ 2021-12-08 21:13 Mirror559 阅读(27) 评论(0) 推荐(0)
摘要: 跟39相比,40主要添加了两个要求: 每个数字在每个组合中只能使用一次。 解集不能包含重复的组合。 最简单的想法肯定是和39类似,主要是用HashSet来存储结果,这样可以直接去重,但是这样会超时。 因此函数做出了以下改动: 1 private void backtracking(int[] can 阅读全文
posted @ 2021-12-07 20:56 Mirror559 阅读(29) 评论(0) 推荐(0)
摘要: 前几题回溯,都是能明确知道回溯树的depth,因此终止条件是: 1 if (path.size() == k) { 2 if (符合题目要求) { 3 result.add((ArrayList) path.clone()); 4 } 5 } 这一题的要求只是: 和为target 唯一组合 数据可重 阅读全文
posted @ 2021-12-07 11:17 Mirror559 阅读(29) 评论(0) 推荐(0)
摘要: 在写了77和216之后,发现我的回溯函数每次都需要在主函数中增加一层循环,让回溯的过程从起点开始,这跟递归的用法有着非常大的区别。 于是我看了一下题解,发现了自己在回溯上的问题: 1 public void function(int n, int k, int curr) { 2 //在进入回溯函数 阅读全文
posted @ 2021-12-06 17:06 Mirror559 阅读(34) 评论(0) 推荐(0)
摘要: 回溯的模板和递归是非常相似的: 递归: 确定递归函数的返回值和参数 确定递归的终止条件 确定单层递归的逻辑 回溯: 确定回溯函数的返回值和参数 确定回溯的终止条件,同时在终止时将本次回溯记录的值回传 确定单层回溯的逻辑 无论回溯终止与否,将本次回溯添加的记录值删除 在本题中,代码如下: 1 List 阅读全文
posted @ 2021-12-06 11:26 Mirror559 阅读(32) 评论(0) 推荐(0)
摘要: 题目要求:求前K个最频繁出现的数字。 1.很容易想到,使用HashMap<Integer,Integer>来存储<number,frequency>键值对 1 int n = nums.length; 2 Map<Integer, Integer> map = new HashMap<>(n); 3 阅读全文
posted @ 2021-10-23 21:12 Mirror559 阅读(153) 评论(0) 推荐(0)
摘要: 二分查找,在经过: 34——https://leetcode-cn.com/problems/find-first-and-last-position-of-element-in-sorted-array/ 35——https://leetcode-cn.com/problems/search-in 阅读全文
posted @ 2021-09-02 13:18 Mirror559 阅读(173) 评论(0) 推荐(0)
摘要: 第一次做到数组双指针的题目是80: 因为python的List是可以用以下代码来删除元素的: del List[index] 所以当时的我直接用了暴力删除第三个重复元素的做法,大概代码如下: n = len(nums) for i in range(n): if 重复了第i个: del nums[i 阅读全文
posted @ 2021-04-20 01:09 Mirror559 阅读(74) 评论(0) 推荐(0)
摘要: 前缀树(字典树)是经典的数据结构,以下图所示: 本来处理每个节点的子节点集合需要用到set,但是因为输入规定了只有26个小写字母,可以直接用一个[26]的数组来存储。 关于ASCII代码: Java char a = 'a' int number = a // number == 24 python 阅读全文
posted @ 2021-04-15 00:29 Mirror559 阅读(48) 评论(0) 推荐(0)
摘要: hello world项目结构: pom中配置的依赖相当于spring boot的可安装插件,需要下载的依赖直接在里边配置。 目前用到的每个注解: 1.主程序中 @SpringBootApplication //:是Spring boot项目的核心注解,目的是开启自动配置 2.controller中 阅读全文
posted @ 2021-04-14 12:42 Mirror559 阅读(49) 评论(0) 推荐(0)