自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(239)
  • 收藏
  • 关注

原创 LeetCode65-有效数字

LeetCode65-有效数字Leetcode / 力扣65. 有效数字:有效数字(按顺序)可以分成以下几个部分:一个 小数 或者 整数(可选)一个 ‘e’ 或 ‘E’ ,后面跟着一个 整数小数(按顺序)可以分成以下几个部分:(可选)一个符号字符(’+’ 或 ‘-’)下述格式之一:- 至少一位数字,后面跟着一个点 ‘.’- 至少一位数字,后面跟着一个点 ‘.’ ,后面再跟着至少一位数字- 一个点 ‘.’ ,后面跟着至少一位数字整数(按顺序)可以分成以下几个部分:

2022-03-18 12:37:36 280

原创 LeetCode50-Pow

LeetCode50-PowLeetcode / 力扣50. Pow(x, n):实现 pow(x, n),即计算 x 的 n 次幂函数(即,x^n )。示例 1:输入:x = 2.00000, n = 10输出:1024.00000示例 2:输入:x = 2.10000, n = 3输出:9.26100示例 3:输入:x = 2.00000, n = -2输出:0.25000解释:2-2 = 1/22 = 1/4 = 0.25提示:-100.0 < x &

2022-03-15 11:01:24 292

原创 LeetCode49-字母异位词分组

LeetCode49-字母异位词分组Leetcode / 力扣49. 字母异位词分组:给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。示例 1:输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]输出: [["bat"],["nat","tan"],["ate","eat","tea"]]示例 2:输入: st

2022-03-15 11:00:51 1002

原创 LeetCode48-旋转图像

LeetCode48-旋转图像Leetcode / 力扣48. 旋转图像:给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。示例 1:输入:matrix = [[1,2,3],[4,5,6],[7,8,9]]输出:[[7,4,1],[8,5,2],[9,6,3]]示例 2:输入:matrix = [[5,1,9,11],[2,4,8,10]

2022-03-15 10:57:58 154

原创 LeetCode47-全排列2

LeetCode47-全排列2Leetcode / 力扣47. 全排列 II:给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。示例 1:输入:nums = [1,1,2]输出:[[1,1,2], [1,2,1], [2,1,1]]示例 2:输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]提示:1 <= nums.length <= 8-

2022-03-15 10:56:59 1235

原创 LeetCode46-全排列

LeetCode46-全排列Leetcode / 力扣46. 全排列:给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。示例 1:输入:nums = [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2:输入:nums = [0,1]输出:[[0,1],[1,0]]示例 3:输入:nums = [1]输出:[[1]]提示:1 <= nums

2022-03-15 10:55:32 63

原创 LeetCode45-跳跃游戏2

LeetCode45-跳跃游戏2Leetcode / 力扣45. 跳跃游戏 II:给你一个非负整数数组 nums ,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。假设你总是可以到达数组的最后一个位置。示例 1:输入: nums = [2,3,1,1,4]输出: 2解释: 跳到最后一个位置的最小跳跃数是 2。  从下标为 0 跳到下标为 1 的位置,跳 1&nbsp

2022-03-15 10:54:29 91

原创 LeetCode44-通配符匹配

LeetCode44-通配符匹配Leetcode / 力扣44. 通配符匹配:给定一个字符串 (s) 和一个字符模式 § ,实现一个支持 ‘?’ 和 ‘*’ 的通配符匹配。‘?’ 可以匹配任何单个字符。‘*’ 可以匹配任意字符串(包括空字符串)。两个字符串完全匹配才算匹配成功。说明:s 可能为空,且只包含从 a-z 的小写字母。p 可能为空,且只包含从 a-z 的小写字母,以及字符 ? 和 *。示例 1:输入:s = "aa"p = "a"输出: false解释

2022-03-15 10:53:26 160

原创 LeetCode43-字符串相乘

LeetCode43-字符串相乘Leetcode / 力扣43. 字符串相乘:给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。注意: 不能使用任何内置的 BigInteger 库或直接将输入转换为整数。示例 1:输入: num1 = "2", num2 = "3"输出: "6"示例 2:输入: num1 = "123", num2 =

2022-03-15 10:52:22 246

原创 LeetCode42-接雨水

LeetCode42-接雨水Leetcode / 力扣42. 接雨水:给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例 1:输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 示例 2:输入:height = [4,2,0,3,2,5]输出:9提示

2022-03-15 10:50:44 1095

原创 LeetCode41-缺失的第一个正数

LeetCode41-缺失的第一个正数Leetcode / 力扣41. 缺失的第一个正数:给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。示例 1:输入:nums = [1,2,0]输出:3示例 2:输入:nums = [3,4,-1,1]输出:2示例 3:输入:nums = [7,8,9,11,12]输出:1提示:1 <= nums.length <= 5

2022-03-15 10:49:12 506

原创 LeetCode40-组合总和2

LeetCode40-组合总和2Leetcode / 力扣40. 组合总和 II:给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用 一次 。注意: 解集不能包含重复的组合。示例 1:输入: candidates = [

2022-03-07 20:49:15 139

原创 LeetCode39-组合总和

LeetCode39-组合总和Leetcode / 力扣39. 组合总和:给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。candidates 中的 同一个 数字可以 无限制重复被选取 。如果至少一个数字的被选数量不同,则两种组合是不同的。对于给定的

2022-03-07 20:48:37 169

原创 LeetCode38-外观数列

LeetCode38-外观数列Leetcode / 力扣38. 外观数列:给定一个正整数 n ,输出外观数列的第 n 项。「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。你可以将其视作是由递归公式定义的数字字符串序列:countAndSay(1) = “1”countAndSay(n) 是对 countAndSay(n-1) 的描述,然后转换成另一个数字字符串。前五项如下:1. 12. 113. 214. 121

2022-03-07 20:45:56 193

原创 LeetCode37-解数独

LeetCode37-解数独Leetcode / 力扣37. 解数独:编写一个程序,通过填充空格来解决数独问题。数独的解法需 遵循如下规则:数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图)数独部分空格内已填入了数字,空白格用 ‘.’ 表示。示例 1:输入:board = [["5","3",".",".","7",".",".",".","."],["6",".",".","

2022-03-07 20:43:02 339

原创 LeetCode36-有效的数独

LeetCode36-有效的数独Leetcode / 力扣36. 有效的数独:请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图)注意:一个有效的数独(部分已被填充)不一定是可解的。只需要根据以上规

2022-03-07 20:40:47 265

原创 LeetCode35-搜索插入位置

LeetCode35-搜索插入位置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], tar

2022-03-07 20:40:11 53

原创 LeetCode34-在排序数组中查找元素的第一个和最后一个位置

LeetCode34-在排序数组中查找元素的第一个和最后一个位置Leetcode / 力扣34. 在排序数组中查找元素的第一个和最后一个位置:给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。进阶:你可以设计并实现时间复杂度为 O(log n) 的算法解决此问题吗?示例 1:输入:nums = [5,7,7,8,8,10], targ

2022-03-07 20:37:43 243

原创 LeetCode33-搜索旋转排序数组

LeetCode33-搜索旋转排序数组Leetcode / 力扣33. 搜索旋转排序数组:整数数组 nums 按升序排列,数组中的值 互不相同 。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k+1], …, nums[n-1], nums[0], nums[1], …, nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,5,6,7] 在下标 3 处经旋

2022-03-07 20:37:04 52

原创 LeetCode32-最长有效括号

LeetCode32-最长有效括号Leetcode / 力扣32. 最长有效括号:给你一个只包含'('和 ')'的字符串,找出最长有效(格式正确且连续)括号子串的长度。示例 1:输入:s = "(()"输出:2解释:最长有效括号子串是 "()"示例 2:输入:s = ")()())"输出:4解释:最长有效括号子串是 "()()"示例 3:输入:s = ""输出:0提示:0 <= s.length <= 3 * 10^4s[i] 为 ‘(’ 或 ‘)

2022-03-07 20:33:07 609

原创 LeetCode31-下一个排列

LeetCode31-下一个排列Leetcode / 力扣31. 下一个排列:实现获取 下一个排列 的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列(即,组合出下一个更大的整数)。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须 原地 修改,只允许使用额外常数空间。示例 1:输入:nums = [1,2,3]输出:[1,3,2]示例 2:输入:nums = [3,2,1]输出:[1,2,3]示例 3:输入:nums = [1,1,

2022-03-07 20:30:52 59

原创 CCF CSP 202109-2 非零段划分

CCF CSP 202109-2 非零段划分试题编号: 202109-2试题名称: 非零段划分时间限制: 1.0s内存限制: 512.0MB题目描述输入格式输出格式样例1输入:113 1 2 0 0 2 0 4 5 0 2样例1输出:5样例1解释:p=2时,A=[3,0,2,0,0,2,0,4,5,0,2],5个非零段依次为[3]、[2]、[2]、[4,5] 和 [2],此时非零段个数达到最大。样例2输入:145 1 20 10 10 10 10 15 10

2022-03-04 13:01:52 762

原创 CCF CSP 202112-2 序列查询新解

CCF CSP 202112-2 序列查询新解试题编号: 202112-2试题名称: 序列查询新解时间限制: 1.0s内存限制: 512.0MB题目背景题目描述输入格式输出格式样例1输入:3 102 5 8样例1输出:5样例1解释:样例2输入:9 101 2 3 4 5 6 7 8 9样例2输出:0样例3输入:2 101 3样例3输出:6样例3解释:解题思路:挨个挨个计算肯定会超时,根据第一题的思路,我们按照数组A中的数进行划

2022-03-01 12:56:40 971

原创 LeetCode30-串联所有单词的子串

LeetCode30-串联所有单词的子串Leetcode / 力扣30. 串联所有单词的子串:给定一个字符串 s 和一些 长度相同 的单词 words 。找出 s 中恰好可以由 words 中所有单词串联形成的子串的起始位置。注意子串要与 words 中的单词完全匹配,中间不能有其他字符 ,但不需要考虑 words 中单词串联的顺序。示例 1:输入:s = "barfoothefoobarman", words = ["f

2021-10-28 13:10:08 167

原创 LeetCode29-两数相除

LeetCode29-两数相除Leetcode / 力扣29. 两数相除:给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2示例 1:输入:

2021-10-28 13:09:43 224

原创 LeetCode28-实现strstr

LeetCode28-实现strstrLeetcode / 力扣28. 实现 strStr():实现 strStr() 函数。给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。说明:当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。对于本题而言,当 needle 是空字符串时我们应当返回 0 。这与 C 语言的 strstr()

2021-10-28 13:08:48 78

原创 LeetCode27-移除元素

LeetCode27-移除元素Leetcode / 力扣27. 移除元素:给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对

2021-10-28 13:07:35 92

原创 LeetCode26-删除有序数组中的重复项

LeetCode26-删除有序数组中的重复项Leetcode / 力扣26. 删除有序数组中的重复项:给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是

2021-10-28 13:05:30 68

原创 LeetCode25-K个一组翻转链表

LeetCode25-K个一组翻转链表Leetcode / 力扣25. K 个一组翻转链表:给你一个链表,每 k 个节点一组进行翻转,请你返回翻转后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。进阶:你可以设计一个只使用常数额外空间的算法来解决此问题吗?你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。示例 1:输入:head = [1,2,3,4,5], k = 2输出:[2,1,4,3,5]

2021-10-28 13:04:53 76

原创 LeetCode24-两两交换链表中的节点

LeetCode24-两两交换链表中的节点Leetcode / 力扣24. 两两交换链表中的节点:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例 1:输入:head = [1,2,3,4]输出:[2,1,4,3]示例 2:输入:head = []输出:[]示例 3:输入:head = [1]输出:[1]提示:链表中节点的数目在范围 [0, 100] 内0 <= Node.val

2021-10-28 13:03:32 156

原创 LeetCode23-合并K个升序链表

LeetCode23-合并K个升序链表Leetcode / 力扣23. 合并K个升序链表:给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。示例 1:输入:lists = [[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[ 1->4->5, 1->3->4, 2->6]将它们合并到一个有序链表中得到。1->1->2-&gt

2021-10-28 13:02:27 86

原创 LeetCode21-合并两个有序链表

LeetCode21-合并两个有序链表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]提示:两个链表的节点数目范围是 [0, 50]-100 &l

2021-10-27 20:17:15 78

原创 LeetCode20-有效的括号

LeetCode20-有效的括号Leetcode / 力扣20. 有效的括号:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例 1:输入:s = "()"输出:true示例 2:输入:s = "()[]{}"输出:true示例 3:输入:s = "(]"输出:false示例 4:输入:s = "([)]"输出:fa

2021-10-27 20:16:02 158

原创 LeetCode19-删除链表的倒数第N个结点

LeetCode19-删除链表的倒数第N个结点19. 删除链表的倒数第 N 个结点:给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。进阶:你能尝试使用一趟扫描实现吗?示例 1:输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]示例 2:输入:head = [1], n = 1输出:[]示例 3:输入:head = [1,2], n = 1输出:[1]提示:链表中结点的数目为 sz1 <= sz <= 3

2021-10-27 20:15:17 75

原创 LeetCode18-四数之和

LeetCode18-四数之和Leetcode / 力扣18. 四数之和:给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] :0 <= a, b, c, d < na、b、c 和 d 互不相同nums[a] + nums[b] + nums[c] + nums[d] == target你可以按 任意顺序

2021-10-27 20:14:37 111

原创 LeetCode17-电话号码的字母组合

LeetCode17-电话号码的字母组合Leetcode / 力扣17. 电话号码的字母组合:给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例 1:输入:digits = "23"输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]示例 2:输入:digits = ""输出:[]示例 3:输入:digits =

2021-10-27 20:12:09 94

原创 LeetCode16-最接近的三数之和

LeetCode16-最接近的三数之和Leetcode / 力扣16. 最接近的三数之和:给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。示例 1:输入:nums = [-1,2,1,-4], target = 1输出:2解释:与 target 最接近的和是 2 (-1 +

2021-10-27 20:10:14 113

原创 LeetCode15-三数之和

LeetCode15-三数之和Leetcode / 力扣15. 三数之和:给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意: 答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]示例 2:输入:nums = []输出:[]示例 3:

2021-10-27 20:06:24 157

原创 LeetCode14-最长公共前缀

LeetCode14-最长公共前缀Leetcode / 力扣14. 最长公共前缀:编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入:strs = ["flower","flow","flight"]输出:"fl"示例 2:输入:strs = ["dog","racecar","car"]输出:""解释:输入不存在公共前缀。提示:1 <= strs.length <= 2000 <= strs[i].

2021-10-27 20:05:45 159

原创 LeetCode13-罗马数字转整数

LeetCode13-罗马数字转整数Leetcode / 力扣13. 罗马数字转整数:罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。

2021-10-27 20:04:26 109

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除