LeetCode3. 无重复字符的最长子串
一、思路 这题也是滑动窗口类型,判断窗口内是否有重复值时,我使用的是集合+队列。集合判断是否重复,队列记录窗口位置。解题后看了下题解,才发现滑动窗口类型确实做少了,这题明明可以用通用解法:下标+map,下标记录窗口位置,map判断是否重复(泛型为<字符,出现的次数>)。 用集合+队列还有个坑:当窗口从未缩小时,是没有触发计算length,需要…
LeetCode438. 找到字符串中所有字母异位词
一、思路 这题虽然也是滑动窗口,但是是属于比较“死板”的滑动窗口,因为它的窗口是固定的,所以有相对简单的解法。我将两种解法都写出来了(简单解法和滑动窗口一般解法)。 二、题目 给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引。 字符串只包含小写英文字母,并且字符串 s 和 p 的长度都不超…
LeetCode76. 最小覆盖子串
一、思路 熟悉下滑动窗口算法,虽然能理解,但细节问题还是遇到很多。调试了很多遍才通过。 最后个用例过不了,用例长度特别大,当时只想到是不是Integer溢出,但是又没报错。那个用例大得都复制不了,无赖只能看题解。 原来是Integer比较时用了==,前面的用例为啥通过了?因为Integer缓存[-128-127]。 二、题目 给你一个字符串 s 、…
SmartAdmin——1、Maven构建配置和激活SpringBoot配置文件
SmartAdmin 是由【1024创新实验室】使用SpringBoot2 和 Vue3 Setup 语法糖、 组合式Composition Api (同时支持JavaScript和TypeScript双版本) ,开发出的一套简洁、易用的中后台解决方案!我们开源一套漂亮的代码和一套整洁的代码规范,让大家在这浮躁的代码世界里感受到一股把代码写好的清流…
LeetCode704. 二分查找
一、思路 这是最基本的二分,easy! 说一下这里:int mid = left + ((right - left) >> 1); 1、移位是为了提高效率 2、不用(left+right)/2是防止int溢出 二、题目 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target &nbs…
LeetCode46. 全排列
一、介绍 这是基础的回溯题了。 二、题目 给定一个 没有重复 数字的序列,返回其所有可能的全排列。 示例: 输入: [1,2,3] 输出: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] Related Topics回溯算法 \n 👍 1046👎 0 三、代码 class Solut…
thumbnail
LeetCode111. 二叉树的最小深度
一、介绍 这题居然可以用广搜,感觉自己对广搜的理解还是太狭隘了,多刷点这方面的题吧。 二、题目 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明:叶子节点是指没有子节点的节点。   示例 1: 输入:root = [3,9,20,null,null,15,7] 输出:2 示例 2: 输入:root =…
thumbnail
LeetCode51. N皇后
一、介绍 这题看似简单的回溯,却有很多边界问题,足足搞了3-4个小时才通过。 二、题目 n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。 上图为 8 皇后问题的一种解法。 给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。 每一种解法包含一个…
LeetCode752. 打开转盘锁
一、认识 最近跟朋友聊到刷题,朋友建议我先将思路写下来,理清楚了再开始写代码。这样做确实有好处,因为写思路时,会更早的发现问题,解决了,想清楚了,再去写代码。这样就能避免走很多弯路。 做这道题的时候,就没有盲目的开始写了。先把思路写出来,写的时候就发现了问题,并解决它,才开始写代码。因此,这次写的代码都没有浪费,以前刷题时经常写一些最终没用到的代码…