LeetCode刷题日记
刷刷题咯
晚来舟Mango
SE专业,SEU硕士在读
展开
-
<LeetCode力扣>2124. 检查是否所有 A 都在 B 之前
给你一个 仅 由字符 ‘a’ 和 ‘b’ 组成的字符串 s 。如果字符串中 每个 ‘a’ 都出现在 每个 ‘b’ 之前,返回 true ;否则,返回 false 。示例 1:输入:s = “aaabbb”输出:true解释: ‘a’ 位于下标 0、1 和 2 ;而 ‘b’ 位于下标 3、4 和 5 。 因此,每个 ‘a’ 都出现在每个 ‘b’ 之前,所以返回 true 。 示例 2:输入:s = “abab”输出:false解释: 存在一个 ‘a’ 位于下标 2 ,而一个 ‘b’ 位于下.原创 2022-05-09 10:36:46 · 1474 阅读 · 0 评论 -
<LeetCode力扣>88. 合并两个有序数组
给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。示例 1:输入:nums1 = [1,2,3,0,0,.原创 2022-04-30 00:01:51 · 208 阅读 · 0 评论 -
<LeetCode力扣>83. 删除排序链表中的重复元素
给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。示例 1:输入:head = [1,1,2]输出:[1,2] 示例 2:输入:head = [1,1,2,3,3]输出:[1,2,3] 提示:(1)链表中节点数目在范围 [0, 300] 内(2)-100 <= Node.val <= 100(3)题目数据保证链表已经按升序 排列===========================================.原创 2022-04-29 23:45:02 · 731 阅读 · 0 评论 -
<LeetCode力扣>70. 爬楼梯
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?示例 1:输入:n= 2输出:2解释:有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶 示例 2:输入:n = 3输出:3解释:有三种方法可以爬到楼顶。1 阶 + 1 阶 + 1 阶1 阶 + 2 阶2 阶 + 1 阶 提示: 1 <= n <= 45================================================.原创 2022-04-29 23:33:53 · 214 阅读 · 0 评论 -
<LeetCode力扣>20. 有效的括号
给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。 有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。 示例 1:输入:s = “()”输出:true 示例 2:输入:s= “()[]{}”输出:true 示例 3:输入:s = “(]”输出:false 示例 4:输入:s = “([)]”输出:false 示例 5:输入:s = “{[]}”输出:true 提示:1)1 <.原创 2022-04-29 23:13:57 · 233 阅读 · 0 评论 -
<LeetCode力扣>67. 二进制求和
给你两个二进制字符串,返回它们的和(用二进制表示)。 输入为非空字符串且只包含数字 1 和 0。 示例 1:输入: a = “11”, b = “1”输出: “100” 示例 2:输入: a = “1010”, b = “1011”输出: “10101” 提示:(1) 每个字符串仅由字符 ‘0’ 或 ‘1’ 组成。(2)1 <= a.length, b.length <= 10^4(3)字符串如果不是 “0” ,就都不含前导零。=====================.原创 2022-04-18 19:18:21 · 62 阅读 · 0 评论 -
<LeetCode力扣>58. 最后一个单词的长度
给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。示例 1:输入:s = “Hello World”输出:5解释:最后一个单词是“World”,长度为5。示例 2:输入:s = " fly me to the moon "输出:4解释:最后一个单词是“moon”,长度为4。 示例 3:输入:s = “luffy is still joyboy”输出:6解释:最.原创 2022-04-16 17:32:59 · 207 阅读 · 0 评论 -
<LeetCode力扣>53. 最大子数组和(DP)
给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。子数组 是数组中的一个连续部分。示例 1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。示例 2:输入:nums = [1]输出:1示例 3:输入:nums = [5,4,-1,7,8]输出:23 提示:(1) 1 <= nums.length <= 105(2) -10.原创 2022-04-16 17:18:20 · 409 阅读 · 0 评论 -
<LeetCode力扣>35. 搜索插入位置(快排)
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。示例 1:输入: nums = [1,3,5,6], target = 5输出: 2 示例 2:输入: nums = [1,3,5,6], target = 2输出: 1 示例 3:输入: nums = [1,3,5,6], target = 7输出: 4 提示:1)1 <= nums.length <.原创 2022-04-16 00:11:48 · 289 阅读 · 0 评论 -
<LeetCode力扣>21. 合并两个有序链表(递归)
将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例 1:输入:l1 =1,2,4], l2 = [1,3,4]输出:[1,1,2,3,4,4]示例 2:输入:l1 = [], l2 = []输出:[]示例 3:输入:l1 = [], l2 = [0]输出:[0] 提示:1)两个链表的节点数目范围是 [0, 50]2)-100 <= Node.val <= 1003)l1 和 l2 均按 非递减顺序 排列=====.原创 2022-04-15 23:54:44 · 239 阅读 · 0 评论 -
<LeetCode力扣>28. 实现 strStr()
实现 strStr() 函数。给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。说明:当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。 对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与 C 语言的 strstr() 以及 Java 的 indexOf() 定义相符。示例 1:输入:haystack = “hell.原创 2022-04-15 23:39:07 · 103 阅读 · 0 评论 -
<LeetCode力扣>125. 验证回文串
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: “A man, a plan, a canal: Panama”输出: true解释:“amanaplanacanalpanama” 是回文串示例 2:输入: “race a car”输出: false解释:“raceacar” 不是回文串 提示:1)1 <= s.length <= 2 * 10^52)字符串 s 由 AS.原创 2022-04-14 00:16:14 · 373 阅读 · 0 评论 -
<LeetCode力扣>14. 最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。 示例 1:输入:strs =[“flower”,“flow”,“flight”]输出:“fl” 示例 2:输入:strs = [“dog”,“racecar”,“car”]输出:“”解释:输入不存在公共前缀。 提示:1 <= strs.length <= 2000 <= strs[i].length <= 200strs[i]仅由小写英文字母组成==========.原创 2022-04-10 00:21:05 · 266 阅读 · 0 评论 -
<LeetCode力扣>27. 移除元素
给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就是说,不对实参作任何拷贝int原创 2022-03-10 23:38:03 · 59 阅读 · 0 评论 -
<LeetCode力扣>2148. 元素计数
给你一个整数数组 nums ,统计并返回在 nums 中同时至少具有一个严格较小元素和一个严格较大元素的元素数目。示例 1:输入:nums = [11,7,2,15]输出:2解释:元素 7 :严格较小元素是元素 2 ,严格较大元素是元素 11 。元素 11 :严格较小元素是元素 7 ,严格较大元素是元素 15 。总计有 2 个元素都满足在 nums 中同时存在一个严格较小元素和一个严格较大元素。示例 2:输入:nums = [-3,3,3,90]输出:2解释:元素 3 :严格较小元素是元原创 2022-03-09 23:18:46 · 539 阅读 · 0 评论 -
<LeetCode力扣>66. 加一
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。示例 2:输入:digits = [4,3,2,1]输出:[4,3,2,2]解释:输入数组表示数字 4321。示例 3:输入:digits = [0]输出:[1]提示:1 <= digits原创 2022-03-09 21:31:58 · 87 阅读 · 0 评论 -
<LeetCode力扣>1848. 到目标元素的最小距离
给你一个整数数组 nums (下标 从 0 开始 计数)以及两个整数 target 和 start ,请你找出一个下标 i ,满足 nums[i] == target 且 abs(i - start) 最小化 。注意:abs(x) 表示 x 的绝对值。返回 abs(i - start) 。题目数据保证 target 存在于 nums 中。示例 1:输入:nums = [1,2,3,4,5], target = 5, start = 3输出:1解释:nums[4] = 5 是唯一一个等于 targ原创 2022-03-07 20:32:43 · 333 阅读 · 0 评论 -
<LeetCode力扣>26. 删除有序数组中的重复项
给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。由于在某些语言中不能改变数组的长度,所以必须将结果放在数组nums的第一部分。更规范地说,如果在删除重复项之后有 k 个元素,那么 nums 的前 k 个元素应该保存最终结果。将最终结果插入 nums 的前 k 个位置后返回 k 。不要使用额外的空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。判题标准:系统会用下原创 2022-03-07 17:03:03 · 321 阅读 · 0 评论 -
<LeetCode力扣> 504. 七进制数
给定一个整数 num,将其转化为 7 进制,并以字符串形式输出。示例 1:输入: num = 100 输出: “202”示例 2:输入: num = -7 输出: “-10”提示:-10^7 <= num <= 10^7分析:10进制转7进制,首先判断输入是否为0,若为0,直接返回0,但要注意要求是返回字符串,所以要把int类型的0利用tostring()方法转换成string类型的0;若不是0,判断正负,并用isplus标记,然后直接取num绝对值。然后一直取商,直到余数为0,将原创 2022-03-07 12:19:13 · 242 阅读 · 0 评论