
LeetCode
文章平均质量分 80
程序员bigsai
坚持分享学习,写了一本原创数据结构与算法pdf分享给大家。
展开
-
一道题,最小操作次数使数组元素相等引发的思考
前言最近在打卡力扣刷题,一道简单题但是感觉挺好的。力扣453:最小操作数使数组相等。题目描述为:给你一个长度为 n 的整数数组,每次操作将会使 n - 1 个元素增加 1 。返回让数组所有元素相等的最小操作次数。示例 1:输入:nums = [1,2,3]输出:3解释:只需要3次操作(注意每次操作会增加两个元素的值):[1,2,3] => [2,3,3] => [3,4,3] => [4,4,4]示例 2:输入:nums = [1,1,1]输出:0原创 2021-10-20 23:48:06 · 1915 阅读 · 4 评论 -
面试官问我有环链表中怎么找到入口,本以为很简单当场却想傻了
有环链表找入口,虽然使用快慢指针但是细节推理太妙了!原创 2021-05-31 19:22:18 · 3925 阅读 · 21 评论 -
深拷贝一个对象会了,怎么深拷贝一个图?
前言在前面,我写过一篇Java的深浅拷贝,那是基于对象的拷贝,但放眼数据结构与算法中,你有考虑过怎么拷贝一个图吗?(无向图)在此之前,你需要对一些概念搞清楚:什么是深拷贝、浅拷贝?浅拷贝:如果拷贝的是引用类型(非基本类型),就只会拷贝一层(嵌套的对象不会被拷贝),如果原对象发生改变,那么拷贝对象也会发生改变。深拷贝:深拷贝的话会拷贝多层,嵌套的对象也会被拷贝出来,相当于开辟一个新的内存地址用于存放拷贝的对象。用通俗一点(可能不完全确切)的话解释,浅拷贝就像你的双胞胎兄弟一样,你们父母亲人都是一样的原创 2021-03-10 09:48:59 · 3446 阅读 · 7 评论 -
被围绕的区域(dfs)
原创公众号:bigsai 欢迎加入力扣打卡文章已收录在 全网都在关注的数据结构与算法学习仓库 欢迎star题目描述给定一个二维的矩阵,包含 ‘X’ 和 ‘O’(字母 O)。找到所有被 ‘X’ 围绕的区域,并将这些区域里所有的 ‘O’ 用 ‘X’ 填充。示例:X X X XX O O XX X O XX O X X运行你的函数后,矩阵变为:X X X XX X X XX X X XX O X X解释:被围绕的区间不会存在于边界上,换句话说,任何边界上的 ‘O’ 都不会.原创 2021-02-28 20:01:44 · 2894 阅读 · 3 评论 -
买卖股票的最佳日期学会了动态规划
原创公众号:bigsai 欢迎加入力扣打卡文章已收录在 全网都在关注的数据结构与算法学习仓库 欢迎star祝大家新年快乐!万事如意!买卖股票的最佳日期①题目描述:给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。示例 1:输入:[7,1.原创 2021-02-07 18:58:57 · 2751 阅读 · 7 评论 -
三角形最小路径和(动态规划)
原创公众号:bigsai 欢迎加入力扣打卡文章已收录在 全网都在关注的数据结构与算法学习仓库 欢迎star题目描述力扣120原题给定一个三角形 triangle ,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。也就是说,如果正位于当前行的下标 i ,那么下一步可以移动到下一行的下标 i 或 i + 1 。示例 1:输入:triangle = [[2],[3,4],[6,5.原创 2021-02-06 20:01:16 · 2676 阅读 · 2 评论 -
【不同的子序列问题】面试官写个字符串要我求有多少个“bigsai“,我懵了
前言有几个pat这是pat的一道题,虽然不是今天的主角题但是我的解决灵感还是来源于这道题,当然下面的题考虑的内容可能稍微复杂一些。不同的子序列给定一个字符串 s 和一个字符串 t ,计算在 s 的子序列中 t 出现的个数。字符串的一个 子序列 是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,“ACE” 是 “ABCDE” 的一个子序列,而 “AEC” 不是)题目数据保证答案符合 32 位带符号整数范围。示例 1:输入:s = "rabbbi原创 2021-01-31 20:07:49 · 2859 阅读 · 6 评论 -
经典笔试题: 二叉树中和为某一值的路径(路径总和)
这两题是相似问题,循序渐进。也是力扣和剑指offer的经典题。路径总和题目描述(题目链接)给你二叉树的根节点 root 和一个表示目标和的整数 targetSum ,判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。叶子节点 是指没有子节点的节点。示例 1:输入:root = [5,4,8,11,null,13,4,7,2,null,null,null,1], targetSum = 22输出:true示例 2:输入:root =原创 2021-01-24 14:16:27 · 3395 阅读 · 0 评论 -
经典面试题:将有序数组、有序链表转换成平衡二叉树
将有序数组转换成平衡二叉树将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定有序数组: [-10,-3,0,5,9],一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10 5分析对于二叉平衡树来说,我们知道它的中序序列是一个升序序列,刚好和我们的给定的升序原创 2021-01-24 14:15:23 · 2600 阅读 · 1 评论 -
经典面试题:给两个序列如何构造一棵二叉树
微信搜一搜:bigsai大家都在关注的刷题、学习数据结构和算法宝藏项目关注回复进群即可加入力扣打卡群,欢迎划水。近期打卡:LeetCode 98验证二叉搜素树(中序遍历)&99恢复二叉搜索树LeetCode 100相同的树&101对称二叉树LeetCode 102二叉树的层序遍历&103二叉树锯齿形遍历&104二叉树的最大深度前言在面试的过程中,我们经常会遇到一些数据结构相关的问题,很多经典问题百问不烂。而数据结构的问题中排序、链表、二叉树等问题又是经久不衰.原创 2021-01-17 20:54:27 · 4080 阅读 · 5 评论 -
LeetCode 102二叉树的层序遍历&103二叉树锯齿形遍历&104二叉树的最大深度
微信搜一搜:bigsai大家都在关注的刷题、学习数据结构和算法宝藏项目关注回复进群即可加入力扣打卡群,欢迎划水。近期打卡:LeetCode 97交错字符串(动态规划)LeetCode 98验证二叉搜素树(中序遍历)&99恢复二叉搜索树LeetCode 100相同的树&101对称二叉树二叉树的层序遍历给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。示例:二叉树:[3,9,20,null,null,15,7], 3 .原创 2021-01-10 20:37:51 · 2483 阅读 · 2 评论 -
LeetCode 100相同的树&101对称二叉树
微信搜一搜:bigsai大家都在关注的刷题、学习数据结构和算法宝藏项目关注回复进群即可加入力扣打卡群,欢迎划水。近期打卡:(https://bigsai.blog.csdn.net/article/details/111778579)LeetCode 96不同的二叉搜索树&95不同的二叉搜索树ⅡLeetCode 97交错字符串(动态规划)LeetCode 98验证二叉搜素树(中序遍历)&99恢复二叉搜索树相同的树给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树.原创 2021-01-10 20:14:26 · 2471 阅读 · 0 评论 -
LeetCode 98验证二叉搜素树(中序遍历)&99恢复二叉搜索树
验证二叉搜索树给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入: 2 / \ 1 3输出: true示例 2:输入: 5 / \ 1 4 / \ 3 6输出: false解释: 输入为: [5,1,4,null,null,3,6]。 根节点的值原创 2021-01-03 19:40:05 · 3708 阅读 · 0 评论 -
LeetCode 97交错字符串(动态规划)
交错字符串给定三个字符串 s1、s2、s3,请你帮忙验证 s3 是否是由 s1 和 s2 交错 组成的。两个字符串 s 和 t 交错 的定义与过程如下,其中每个字符串都会被分割成若干 非空 子字符串:s = s1 + s2 + ... + snt = t1 + t2 + ... + tm|n - m| <= 1交错 是 s1 + t1 + s2 + t2 + s3 + t3 + ... 或者 t1 + s1 + t2 + s2 + t3 + s3 + ...提示:a + b 意味着字符串原创 2021-01-03 19:35:25 · 3325 阅读 · 1 评论 -
LeetCode 96不同的二叉搜索树&95不同的二叉搜索树Ⅱ
这两种问题有点相似但是是一个进阶,这里就先写第96题,然后写95题。96 不同的二叉搜索树Ⅱ给定一个整数 n,求以 1 … n 为节点组成的二叉搜索树有多少种?示例:输入: 3输出: 5解释:给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2 / /原创 2021-01-02 19:59:43 · 3476 阅读 · 4 评论 -
LeetCode 92反转链表Ⅱ&93复制ip地址&94二叉树的中序遍历
反转链表Ⅱ反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。说明:1 ≤ m ≤ n ≤ 链表长度。示例:输入: 1->2->3->4->5->NULL, m = 2, n = 4输出: 1->4->3->2->5->NULL分析:这种题实现的方法可能比较多,但是我这里使用头插法去实现。m-n范围内进行反转,那么只需要将这部分的链表顺序头插在m-1位的后面即可。后面再拼接起来。防止m包含头部,可以引入一个头节点进行处原创 2020-12-27 18:58:13 · 3066 阅读 · 3 评论 -
LeetCode 90子集Ⅱ&91解码方法
子集Ⅱ给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: [1,2,2]输出:[ [2], [1], [1,2,2], [2,2], [1,2], []]分析:这道题和上道求子集不同的是这里面可能会出现重复的元素。我们需要在结果中过滤掉重复的元素。首先,子集问题无疑是使用回溯法求得结果,首先分析如果序列没有重复的情况,我们会借助一个boolean[]数组标记使用过的元素和index表示当前的原创 2020-12-26 18:58:17 · 3491 阅读 · 0 评论 -
LeetCode 88合并两个有序数组&89格雷编码
合并两个有序数组题目描述给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = [2,5,6], n = 3输出:[1,2,2,3,5,6]原创 2020-12-20 18:26:29 · 3041 阅读 · 2 评论 -
LeetCode 86分割链表&87扰乱字符串
分割链表题目描述:给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。示例:输入: head = 1->4->3->2->5->2, x = 3输出: 1->2->2->4->3->5分析:这题的话也很简单,它要求将小于x的节点放到前面,且相对位置不变。我们可以采用两个链表将其分割开来然后再合并,在具体的处理上,可以创建两个带头原创 2020-12-19 15:41:46 · 2993 阅读 · 1 评论 -
LeetCode 79单词搜索&80删除排序数组中的重复项Ⅱ&81.搜索旋转排序数组Ⅱ
LeetCode79.单词搜索给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例:board =[ ['A','B','C','E'], ['S','F','C','S'], ['A','D','E','E']]给定 word = "ABCCED", 返回 true给定 word = "SEE", 返回 true给定 word原创 2020-12-06 18:08:09 · 3009 阅读 · 0 评论 -
Leetcode 76最小覆盖子串&77组合&78子集
LeetCode 76最小覆盖子串给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串,则返回空字符串 “” 。注意:如果 s 中存在这样的子串,我们保证它是唯一的答案。示例 1:输入:s = "ADOBECODEBANC", t = "ABC"输出:"BANC"示例 2:输入:s = "a", t = "a"输出:"a"提示:1 <= s.length, t.length <= 105s 和 t原创 2020-12-05 18:55:03 · 3164 阅读 · 0 评论 -
LeetCode 73矩阵置零&74搜素二维矩阵&75颜色分类
矩阵置零题目描述:给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。示例 1:输入: [ [1,1,1], [1,0,1], [1,1,1]]输出: [ [1,0,1], [0,0,0], [1,0,1]]示例 2:输入: [ [0,1,2,0], [3,4,5,2], [1,3,1,5]]输出: [ [0,0,0,0], [0,4,5,0], [0,3,1,0]]进阶原创 2020-11-29 19:04:43 · 3800 阅读 · 0 评论 -
LeetCode 70爬楼梯&71简化路径&72编辑距离(dp)
新人公众号(求支持):bigsai 专注于Java、数据结构与算法,一起进大厂不迷路!关注这个潇洒青年一起飞,回复进群即可加入力扣打卡群,欢迎划水。近期打卡:跟我打卡LeetCode 58最后一个单词长度&59螺旋矩阵Ⅱ&60排列序列跟我打卡LeetCode 61旋转链表&62不同路径&63不同路径 II打卡LeetCode 65有效数字&66加一 &67二进制求和LeetCode 67二进制求和&68文本左右对齐&69x的平方根.原创 2020-11-28 16:16:39 · 3019 阅读 · 5 评论 -
LeetCode 67二进制求和&68文本左右对齐&69x的平方根
文本左右对齐描述给定一个单词数组和一个长度 maxWidth,重新排版单词,使其成为每行恰好有 maxWidth 个字符,且左右两端对齐的文本。你应该使用“贪心算法”来放置给定的单词;也就是说,尽可能多地往每行中放置单词。必要时可用空格 ’ ’ 填充,使得每行恰好有 maxWidth 个字符。要求尽可能均匀分配单词间的空格数量。如果某一行单词间的空格不能均匀分配,则左侧放置的空格数要多于右侧的空格数。文本的最后一行应为左对齐,且单词之间不插入额外的空格。说明:单词是指由非空格字符组成的字原创 2020-11-22 20:32:59 · 3779 阅读 · 4 评论 -
LeetCode 64最小路径和&65有效数字&66加一
有效数字验证给定的字符串是否可以解释为十进制数字。加一,二进制求和原创 2020-11-21 17:35:01 · 2759 阅读 · 0 评论 -
跟我打卡LeetCode 61旋转链表&62不同路径&63不同路径 II
旋转链表给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。示例 1:输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NULL向右旋转 2 步: 4->5->1->2->3->NULL示例 2:输入: 0->1->原创 2020-11-15 16:50:53 · 2821 阅读 · 2 评论 -
跟我打卡LeetCode 58最后一个单词长度&59螺旋矩阵Ⅱ&60排列序列
最后一个单词长度题目描述给定一个仅包含大小写字母和空格 ’ ’ 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。如果不存在最后一个单词,请返回 0 。说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。示例:输入: “Hello World”输出: 5分析这题其实很简单,就是三个步骤模拟这个过程就可以了:具体代码:public int lengthOfLastWord(String s) { if(原创 2020-11-14 17:40:37 · 2759 阅读 · 0 评论 -
LeetCode 55跳跃游戏&56合并区间&57插入区间
跳跃游戏给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例 1:输入: [2,3,1,1,4]输出: true解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。示例 2:输入: [3,2,1,0,4]输出: false解释: 无论怎样,你总会到达索引为 3 的位置。但该位置的最大跳跃长度是 0 , 所以你永远不可能到达最后一个位置。分析原创 2020-11-08 16:04:23 · 2330 阅读 · 2 评论 -
LeetCode打卡 52八皇后Ⅱ&53最大子序和&54螺旋矩阵
n皇后Ⅱn 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。上图为 8 皇后问题的一种解法。给定一个整数 n,返回 n 皇后不同的解决方案的数量。示例:输入: 4输出: 2解释: 4 皇后问题存在如下两个不同的解法。[ [".Q..", // 解法 1 "...Q", "Q...", "..Q."], ["..Q.", // 解法 2 "Q...", "...Q", ".Q.."]]提示:皇后,是国际象棋原创 2020-11-07 18:53:52 · 2475 阅读 · 0 评论 -
LeetCode 49字母异位词分组&50pow(x,n)&51八皇后
字母异位词分组给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"]输出:[ ["ate","eat","tea"], ["nat","tan"], ["bat"]]说明:所有输入均为小写字母。不考虑答案输出的顺序。分析题目的意思就是给若干个字符串单词,然后将含有全部相同的字母放到一个List<String>中。我们的核心问题原创 2020-11-01 19:21:28 · 3120 阅读 · 6 评论 -
LeetCode 47全排列Ⅱ&48旋转图像
原创公众号:bigsai 如果不错记得点赞收藏!关注回复 bigsai 领取Java进阶pdf资源,回复进群加入力扣打卡群。上周打卡内容:43字符串相乘&44通配符匹配 45跳跃游戏&46全排列全排列Ⅱ给定一个可包含重复数字的序列,返回所有不重复的全排列。示例:输入: [1,1,2]输出:[[1,1,2],[1,2,1],[2,1,1]]法一 哈希这题相比之前的就是有重复的情况,最笨的方法就是用哈希将各种序列存到Set中最后返回,但是这也是一种方法和策.原创 2020-10-31 20:17:29 · 2428 阅读 · 0 评论 -
LeetCode 45跳跃游戏&46全排列
跳跃游戏题目描述:给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。示例:输入: [2,3,1,1,4]输出: 2解释: 跳到最后一个位置的最小跳跃数是 2。从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。说明:假设你总是可以到达数组的最后一个位置。分析:这题的话也是运用了不同的方法,从复杂到简单。法一:枚举枚举的思路很简单,二重原创 2020-10-25 19:10:42 · 2072 阅读 · 0 评论 -
LeetCode 43字符串相乘&44通配符匹配
字符串相乘题目描述:给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = “2”, num2 = “3”输出: “6”示例 2:输入: num1 = “123”, num2 = “456”输出: “56088”说明:num1 和 num2 的长度小于110。num1 和 num2 只包含数字 0-9。num1 和 num2 均不以零开头,除非是数字 0 本身。不能使用任何原创 2020-10-24 18:41:57 · 2259 阅读 · 0 评论 -
Leetcode 40组合总数(回溯)Ⅱ&41缺失的第一个正数&42接雨水
维护公众号:bigsai ,回复进群加入打卡,回复bigsai分享一些学习资源!组合总数(回溯)题目描述:给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。andidates 中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。示例 1:输入: candidates = [10,1,2,7,6,1,5], target = 8,所求解.原创 2020-10-17 19:48:24 · 1956 阅读 · 0 评论 -
LeetCode 38外观数列&39组合总和
维护公众号:bigsai 回复bigsai分享一些学习资源!本周上篇 LeetCode 36有效的数独&37解数独(八皇后问题)外观数列给定一个正整数 n(1 ≤ n ≤ 30),输出外观数列的第 n 项。注意:整数序列中的每一项将表示为一个字符串。「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。前五项如下:1. 12. 113. 214. 12115. 111221第一项是数字 1描述前一.原创 2020-10-11 19:54:34 · 2106 阅读 · 0 评论 -
LeetCode 36有效的数独&37解数独(八皇后问题)
公众号:bigsai 回复进群加入打卡有效的数独判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用 ‘.’ 表示。示例 1:输入:[ ["5","3",".",".","7",".",".",".","."], ["6",".",".",.原创 2020-10-10 20:00:09 · 2334 阅读 · 1 评论 -
LeetCode (二分小专题)33搜索旋转排序数组&34在排序数组中查找元素的第一个和最后一个位置&35搜索插入位置
前言国庆前最后一次打卡,国庆后继续开启,公众号bigsai回复进群欢迎加入打卡,如有帮助记得点赞收藏。近期打卡记录:LeetCode 32最长有效括号(困难) (本周)LeetCode 30串联所有单词的子串&31下一个排列(上周)LeetCode 27移除元素&28实现strStr()&29两数相除(上周)二分查找我想大家都很熟悉,二分查找每次判断并比较元素所在区间进行压缩,每次都可以压缩一半的区间,所以压到1个大小把它你想来看就是(最坏)扩散了n次到达原始长度。很原创 2020-09-27 18:37:56 · 2962 阅读 · 0 评论 -
LeetCode 32最长有效括号(困难)
维护不易,还请点个赞赞,如果想加入还请关注公众号bigsai回复进群加入打卡。题目描述给定一个只包含 ‘(’ 和 ‘)’ 的字符串,找出最长的包含有效括号的子串的长度。示例 1:输入: “(()”输出: 2解释: 最长有效括号子串为 “()”示例 2:输入: “)()())”输出: 4解释: 最长有效括号子串为 “()()”分析再看这题之前,咱们回顾一下前面刷过的题。力扣20有效的括号分析这种题核心思想就是使用栈模拟。本题的话更简单一点因为只有(和 )两种括号,只有.原创 2020-09-26 20:50:29 · 2641 阅读 · 0 评论 -
LeetCode 30串联所有单词的子串&31下一个排列
标题串联所有单词得字串下一个排列维护真的不易,如有帮助还请点赞关注,关注公众号bigsai回复进群即可加入打卡。串联所有单词得字串题目描述:给定一个字符串 s 和一些长度相同的单词 words。找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置。注意子串要与 words 中的单词完全匹配,中间不能有其他字符,但不需要考虑 words 中单词串联的顺序。示例 1:输入:s = “barfoothefoobarman”,words = [“foo”,“bar”]原创 2020-09-21 21:02:13 · 2572 阅读 · 0 评论 -
LeetCode 27移除元素&28实现strStr()&29两数相除
维护幸苦,如有打卡欢迎关注公众号bigsai回复进群,如有帮助欢迎点赞支持!移除元素给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需要考虑数.原创 2020-09-19 20:54:46 · 2429 阅读 · 0 评论