- 博客(95)
- 收藏
- 关注
原创 LeetCode 热题 100 - 技巧 - 寻找重复数 - javascript
给定一个包含 n + 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数。假设 nums 只有 一个重复的整数 ,返回 这个重复的数 。你设计的解决方案必须 不修改 数组 nums 且只用常量级 O(1) 的额外空间。
2025-04-26 21:13:54
504
原创 LeetCode 热题 100 - 技巧 - 下一个排列 - javascript
整数数组的一个就是将其所有成员以序列或线性顺序排列。整数数组的是指其整数的下一个字典序更大的排列。更正式地,如果数组的所有排列根据其字典顺序从小到大排列在一个容器中,那么数组的就是在这个有序容器中排在它后面的那个排列。如果不存在下一个更大的排列,那么这个数组必须重排为字典序最小的排列(即,其元素按升序排列)。给你一个整数数组nums,找出nums的下一个排列。
2025-04-26 20:55:38
375
原创 LeetCode 热题 100 - 技巧 - 颜色分类 - javascript
给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,原地 对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。必须在不使用库内置的 sort 函数的情况下解决这个问题。
2025-04-26 20:29:45
238
原创 LeetCode 热题 100 - 技巧 - 多数元素 - javascript
给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。
2025-04-26 04:11:49
187
原创 LeetCode 热题 100 - 技巧 - 只出现一次的数字 - javascript
给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。
2025-04-26 04:03:17
181
原创 LeetCode 热题 100 - 动态规划 - 编辑距离 - javascript
给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 。你可以对一个单词进行如下三种操作:插入一个字符、删除一个字符、替换一个字符
2025-04-26 03:51:17
423
原创 LeetCode 热题 100 - 动态规划 - 最长公共子序列 - javascript
给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,"ace" 是 "abcde" 的子序列,但 "aec" 不是 "abcde" 的子序列。两个字符串的 公共子序列 是这两个字符串所共同拥有的子序列。
2025-04-26 02:56:53
495
原创 LeetCode 热题 100 - 动态规划 - 最小路径和 - javascript
给定一个包含非负整数的m x n网格grid,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。每次只能向下或者向右移动一步。
2025-04-26 01:12:58
325
原创 LeetCode 热题 100 - 动态规划 - 多维动态规划 - javascript
一个机器人位于一个m x n网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?
2025-04-26 00:42:23
387
原创 LeetCode 热题 100 - 动态规划 - 分割等和子集 - javascript
给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。
2025-04-26 00:26:50
790
原创 LeetCode 热题 100 - 动态规划 - 乘积最大子数组 - javascript
给你一个整数数组 nums ,请你找出数组中乘积最大的非空连续 子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。
2025-04-25 23:06:01
166
原创 LeetCode 热题 100 - 动态规划 - 最长递增子序列 - javascript
给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。
2025-04-25 22:09:22
303
原创 LeetCode 热题 100 - 动态规划 - 单词拆分 - javascript
给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单词拼接出 s 则返回 true。注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。
2025-04-25 03:20:24
274
原创 LeetCode 热题 100 - 动态规划 - 零钱兑换 - javascript
给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。你可以认为每种硬币的数量是无限的。
2025-04-25 02:53:03
232
原创 LeetCode 热题 100 - 动态规划 - 完全平方数 - javascript
给你一个整数 n ,返回 和为 n 的完全平方数的最少数量 。完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。
2025-04-25 02:43:45
468
原创 LeetCode 热题 100 - 动态规划 - 打家劫舍 - javascript
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。
2025-04-25 01:23:20
172
原创 LeetCode 热题 100 - 动态规划 - 杨辉三角 - javascript
给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。在「杨辉三角」中,每个数是它左上方和右上方的数的和。
2025-04-25 01:06:32
270
原创 LeetCode 热题 100 - 动态规划 - 爬楼梯 - javascript
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
2025-04-25 00:39:48
277
原创 LeetCode 热题 100 - 贪心算法 - 划分字母区间 - javascript
给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。例如,字符串 "ababcc" 能够被分为 ["abab", "cc"],但类似 ["aba", "bcc"] 或 ["ab", "ab", "cc"] 的划分是非法的。注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是 s 。返回一个表示每个字符串片段的长度的列表。
2025-04-24 23:35:33
451
原创 LeetCode 热题 100 - 贪心算法 - 跳跃游戏II - javascript
给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。每个素 nums[i] 表示从索引 i 向后跳转的最大长度。换句话说,如果你在 nums[i] 处,你可以跳转到任意 nums[i + j] 处:0 <= j <= nums[i] ,i + j < n返回到达 nums[n - 1] 的最小跳跃次数。生成的测试用例可以到达 nums[n - 1]。
2025-04-24 23:00:54
382
原创 LeetCode 热题 100 - 贪心算法 - 跳跃游戏 - javascript
给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。
2025-04-24 21:39:39
302
原创 LeetCode 热题 100 - 贪心算法 - 买卖股票的最佳时机 - javascript
给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。
2025-04-24 11:32:09
362
原创 LeetCode 热题 100 - 堆 - 前 K个高频元素 - javascript
给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按任意顺序返回答案。
2025-04-24 11:13:47
612
原创 LeetCode 热题 100 - 堆 - 数组中的第K个最大元素 - javascript
给定整数数组nums和整数k,请返回数组中第k个最大的元素。请注意,你需要找的是数组排序后的第k个最大的元素,而不是第k个不同的元素。你必须设计并实现时间复杂度为O(n)的算法解决此问题。54。
2025-04-24 09:36:22
483
原创 LeetCode 热题 100 - 栈 - 每日温度 - javascript
给定一个整数数组,表示每天的温度,返回一个数组answer,其中answer[i]是指对于第i天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用0来代替。
2025-04-24 02:21:05
332
原创 LeetCode 热题 100 - 栈 - 字符串解码 - javascript
给定一个经过编码的字符串,返回它解码后的字符串。编码规则为:,表示其中方括号内部的正好重复k次。注意k保证为正整数。你可以认为输入字符串总是有效的;输入字符串中没有额外的空格,且输入的方括号总是符合格式要求的。此外,你可以认为原始数据不包含数字,所有的数字只表示重复的次数k,例如不会出现像3a或2[4]的输入。"aaabcbc"
2025-04-24 01:46:29
652
原创 LeetCode 热题 100 - 栈 - 最小栈 - javascript
设计一个支持pushpoptop操作,并能在常数时间内检索到最小元素的栈。
2025-04-24 00:25:38
321
原创 LeetCode 热题 100 - 栈 - 有效的括号 - javascript
给定一个只包括'('')''{''}''['']'的字符串s,判断字符串是否有效。
2025-04-24 00:00:40
271
原创 LeetCode 热题 100 - 二分查找 - 寻找旋转排序数组中的最小值 - javascript
已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums = [0,1,2,4,5,6,7] 在变化后可能得到:若旋转 4 次,则可以得到 [4,5,6,7,0,1,2]若旋转 7 次,则可以得到 [0,1,2,4,5,6,7]注意,数组 [a[0], a[1], a[2], ..., a[n-1]] 旋转一次 的结果为数组 [a[n-1], a[0], a[1], a[2], ..., a[n-2]] 。给你一个元素值 互不相同 的数组
2025-04-23 03:25:46
486
原创 LeetCode 热题 100 - 二分查找 - 搜索旋转排序数组 - javascript
整数数组 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 处经旋转后可能变为 [4,5,6,7,0,1,2] 。给你 旋转后 的数组 nums 和一个整数 ta
2025-04-23 02:50:58
559
原创 LeetCode 热题 100 - 二分查找 - 在排序数组中查找元素的第一个和最后一个位置 - javascript
给你一个按照非递减顺序排列的整数数组nums,和一个目标值target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值target,返回[-1, -1]。你必须设计并实现时间复杂度为O(log n)的算法解决此问题。
2025-04-23 02:06:16
461
原创 LeetCode 热题 100 - 二分查找 - 搜索二维矩阵 - javascript
给你一个满足下述两条属性的 m x n 整数矩阵:每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回 false 。
2025-04-23 01:25:03
583
原创 LeetCode 热题 100 - 二分查找 - 搜索插入位置 - javascript
给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。请必须使用时间复杂度为 O(log n) 的算法。
2025-04-23 00:56:49
364
原创 LeetCode 热题 100 - 回溯 - 分割回文串 - javascript
给你一个字符串s,请你将s分割成一些 子串,使每个子串都是回文串。返回s所有可能的分割方案。示例 1:输入:s = "aab"输出:[["a","a","b"],["aa","b"]]示例 2:输入:s = "a"输出:[["a"]]
2025-04-23 00:20:28
184
原创 LeetCode 热题 100 - 回溯 - 单词搜索 - javascript
给定一个m x n二维字符网格board和一个字符串单词word。如果word存在于网格中,返回true;否则,返回false。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。
2025-04-22 22:39:27
472
原创 LeetCode 热题 100 - 回溯 - 括号生成 - javascript
数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。
2025-04-22 21:40:38
386
原创 LeetCode 热题 100 - 回溯 - 组合总和 - javascript
给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。candidates 中的 同一个 数字可以 无限制重复被选取 。如果至少一个数字的被选数量不同,则两种组合是不同的。 对于给定的输入,保证和为 target 的不同组合数少于 150 个。
2025-04-22 13:12:25
432
原创 LeetCode 热题 100 - 回溯 - 电话号码的字母组合 - javascript
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。
2025-04-22 12:46:14
412
原创 LeetCode 热题 100 - 回溯 - 子集 - javascript
给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。
2025-04-22 12:33:45
226
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅