
leetcode
力扣算法
ZtCling
热爱代码,欢迎交流
展开
-
leetcode力扣:567. 字符串的排列 滑动窗口解法
基本思路:这道题是典型的滑动窗口问题定义两个数组arr1,arr2。因为题目两个字符串都是由英文字母组成,所以长度都是26。我们要用这两个数组arr1储存s1字符串中各个字符的个数,arr2储存当前遍历子串中各个字符的个数把s1的长度n当作滑动窗口的长度,遍历s2中每个长度为n的字串。得到的arr2判断与arr1是否相等代码实现:class Solution { public boolean checkInclusion(String s1, String s2) ..原创 2022-04-10 13:01:47 · 676 阅读 · 0 评论 -
leetcode力扣:3. 无重复字符的最长子串 滑动窗口解法
基本思路:这道题用滑动窗口可解什么是滑动窗口?字符串abcabcbb为例我们列举出这些结果,其中括号中表示选中的字符以及最长的字符串:以 (a)bcabcbb开始的最长字符串为 (abc)abcbb;以a(b)cabcbb开始的最长字符串为 a(bca)bcbb;以 ab(c)abcbb开始的最长字符串为 ab(cab)cbb;以abc(a)bcbb 开始的最长字符串为 abc(abc)bb;以 abca(b)cbb开始的最长字符串为abca(bc)bb;以 abcab(...原创 2022-04-08 22:20:10 · 332 阅读 · 0 评论 -
leetcode力扣:73. 矩阵置零
基本思路:非常简单的一道题,需要注意的点就是,当你找到一个0的时候不能立刻在循环里将其行和列的数字置0,因为会干扰外层的循环,因此我们需要定义两个数组,将为的位置先存下里来,当整个二维数组都遍历完成后,再进行置0操作。代码实现:class Solution { public void setZeroes(int[][] matrix) { int m = matrix.length; int n = matrix[0].length; ...原创 2022-04-07 13:11:19 · 397 阅读 · 0 评论 -
leetcode力扣:36. 有效的数独
基本思路:判断数独有效要满足三个条件:1.每行数字1-9没有重复的2.每列数字1-9没有重复的3.每个九宫格数字1-9没有重复的我的思路就是,用ascall码自建哈希表,记录出现的次数,如果每行,每列或者每个九宫格同一个数字出现的次数大于一次就输出false代码实现:class Solution { public boolean isValidSudoku(char[][] board) { //记录每行1到9每个数字出现的个数 int ...原创 2022-04-07 12:26:32 · 544 阅读 · 0 评论 -
leetcode力扣:19. 删除链表的倒数第 N 个结点
第一次中等题完全靠自己写出击败100%的解法!!!基本思路:1.题目要求删除倒数第n个结点,那么我们先要知道链表的总长度2.然后找出要删除结点在链表中的具体位置3.在将删除的结点的左右结点个定义一个指针4.然后直接left = right.next ,将右指针后的那段链表连接到left后面(这样就相当于跳过了那个想要删除的结点)代码实现:/** * Definition for singly-linked list. * public class ListNode...原创 2022-04-02 14:06:24 · 386 阅读 · 0 评论 -
leetcode力扣:1669. 合并两个链表
基本思路:1.从list1的头结点开始向后移动 a - 1 步,定位到 le;2.从list1的头结点开始向后移动 b +1 步,定位到 ri;3.把list2填充到le后,填充完毕后接上ri代码实现:/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * List...原创 2022-04-01 13:01:32 · 565 阅读 · 0 评论 -
leetcode力扣46. 全排列 回溯解法
基本思路:根据回溯代码实现:原创 2022-03-27 15:49:31 · 933 阅读 · 0 评论 -
leetcode力扣:695. 岛屿的最大面积
基本思路:要求最大岛屿面积,首先我们需要知道哪些地方是岛屿,这就要求我们必须把先把整个地图遍历一遍,当我们遇到一个岛屿时(也就是二维数组中一个为1的值时)我们对他展开深度遍历,对ans加一,并将他的值赋为0(以免多次记录),每遇到一个为为1的“岛屿”值时就进行次操作,直至整个地图被遍历完,通过Math的max方法得到ans的最大值,进行返回就是岛屿的最大值了。代码实现:class Solution { public int maxAreaOfIsland(int[][] ...原创 2022-03-26 10:01:50 · 940 阅读 · 0 评论 -
leetcode力扣:102. 二叉树的层序遍历
题目分析:将二叉树按层次分组顺序遍历基本思路:可以利用队列先进先出的基本思想和数组变量嵌套写法,来分组顺序遍历二叉树按层遍历,将每一层的数值取出放在一个小list当中,最后拼成一个大list补充:补充一些关于队列(Queue)的用法(加黑的是本题用到的):add 增加一个元索 如果队列已满,则抛出一个IIIegaISlabEepeplian异常remove 移除并返回队列头部的元素 如果队列为空,则抛出一个NoSuchElementException异常elem...原创 2022-03-20 10:59:18 · 318 阅读 · 0 评论 -
leetcode力扣:678. 有效的括号字符串
题目解析:给定一个只含有( )*的字符串()算是一组,*)和(*也算是一组,如果没有多余的)或者(就返回true,如果有就返回false基本思路:这道题最简单的方法应该就是用贪心算法解决了。1.首先我们将未匹配的左括号的最大值和最小值看做是两个基数,定义它们的初始最小值是0,(因为有*这个不确定因素,它既可以看作是左右括号,也可以看作是一个空字符串)2.随着字符串的遍历当我们遇到一个左括号,待匹配的左括号的最大值和最小值都要加一。3.当我们遇到一个右括号,待匹配的左括号最大值和最..原创 2022-03-19 10:59:48 · 725 阅读 · 0 评论 -
leetcode力扣-2.两数相加
力扣2:两数相加原创 2022-03-03 21:55:07 · 149 阅读 · 0 评论