两数之和(哈希表)
摘要:给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案,并且你不能使用两次相同的元素。 你可以按任意顺序返回答案。 示例 1: 输入:nums = [2,7,11,15],
阅读全文
posted @
2025-01-11 11:37
_月生
阅读(7)
推荐(0) 编辑
寻找重复数(二分查找)
摘要:给定一个包含 n + 1 个整数的数组 nums ,其数字都在 [1, n] 范围内(包括 1 和 n),可知至少存在一个重复的整数。 假设 nums 只有 一个重复的整数 ,返回 这个重复的数 。 你设计的解决方案必须 不修改 数组 nums 且只用常量级 O(1) 的额外空间。 示例 1: 输入
阅读全文
posted @
2025-01-11 11:17
_月生
阅读(10)
推荐(0) 编辑
下一个排列
摘要:整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。 例如,arr = [1,2,3] ,以下这些都可以视作 arr 的排列:[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1] 。 整数数组的 下一个排列 是指其整数的下一个字典序更大的排列。更正式地,如果数组的所有排列根据其字典
阅读全文
posted @
2025-01-10 21:43
_月生
阅读(2)
推荐(0) 编辑
颜色分类(单指针)
摘要:给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,原地 对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。 必须在不使用库内置的 sort 函数的情况下解决这个问题。 示例 1: 输入:nums = [2
阅读全文
posted @
2025-01-10 20:42
_月生
阅读(2)
推荐(0) 编辑
多数元素(排序)
摘要:给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 示例 1: 输入:nums = [3,2,3] 输出:3 示例 2: 输入:nums = [2,2,1,1,1,2,2]
阅读全文
posted @
2025-01-10 20:11
_月生
阅读(2)
推荐(0) 编辑
只出现一次的数字(异或运算)
摘要:给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法来解决此问题,且该算法只使用常量额外空间。 示例 1 : 输入:nums = [2,2,1] 输出:1 示例 2 : 输入:nums = [4,
阅读全文
posted @
2025-01-10 13:44
_月生
阅读(5)
推荐(0) 编辑
编辑距离(二维动态规划)
摘要:给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 插入一个字符 删除一个字符 替换一个字符 示例 1: 输入:word1 = "horse", word2 = "ros" 输出:3 解释: horse -
阅读全文
posted @
2025-01-09 21:25
_月生
阅读(8)
推荐(0) 编辑
最长公共子序列(二维动态规划)
摘要:给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。 例如,"ace" 是 "a
阅读全文
posted @
2025-01-09 20:46
_月生
阅读(6)
推荐(0) 编辑
最长回文串(二维动态规划)
摘要:给你一个字符串 s,找到 s 中最长的 回文子串。 示例 1: 输入:s = "babad" 输出:"bab" 解释:"aba" 同样是符合题意的答案。 示例 2: 输入:s = "cbbd" 输出:"bb" class Solution { public: string longestPalind
阅读全文
posted @
2025-01-09 16:56
_月生
阅读(4)
推荐(0) 编辑
最小路径和(二维动态规划)
摘要:给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例 1: 输入:grid = [[1,3,1],[1,5,1],[4,2,1]] 输出:7 解释:因为路径 1→3→1→1→1 的总和最小。
阅读全文
posted @
2025-01-09 15:42
_月生
阅读(6)
推荐(0) 编辑
不同路径(二维动态规划)
摘要:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路径? 示例 1: 输入:m = 3, n = 7 输出:28 示例 2: 输入:m
阅读全文
posted @
2025-01-09 15:09
_月生
阅读(3)
推荐(0) 编辑
最长有效括号(动态规划)
摘要:给你一个只包含 '(' 和 ')' 的字符串,找出最长有效(格式正确且连续)括号子串的长度。 示例 1: 输入:s = "(()" 输出:2 解释:最长有效括号子串是 "()" 示例 2: 输入:s = ")()())" 输出:4 解释:最长有效括号子串是 "()()" 示例 3: 输入:s = "
阅读全文
posted @
2025-01-08 21:47
_月生
阅读(9)
推荐(0) 编辑
分割等和子集(动态规划)
摘要:给你一个 只包含正整数 的 非空 数组 nums 。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 示例 1: 输入:nums = [1,5,11,5] 输出:true 解释:数组可以分割成 [1, 5, 5] 和 [11] 。 示例 2: 输入:nums = [1,2,3,5
阅读全文
posted @
2025-01-08 20:35
_月生
阅读(12)
推荐(0) 编辑
乘积最大子数组(动态规划)
摘要:给你一个整数数组 nums ,请你找出数组中乘积最大的非空连续子数组(该子数组中至少包含一个数字),并返回该子数组所对应的乘积。 测试用例的答案是一个 32-位 整数。 示例 1: 输入: nums = [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6。 示例 2: 输入
阅读全文
posted @
2025-01-08 20:09
_月生
阅读(4)
推荐(0) 编辑
最长递增子序列(动态规划)
摘要:给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的 子序列。 示例 1: 输入:nums = [10,9,2,5,3,7,101,1
阅读全文
posted @
2025-01-08 19:54
_月生
阅读(5)
推荐(0) 编辑
单词拆分(动态规划)
摘要:给你一个字符串 s 和一个字符串列表 wordDict 作为字典。如果可以利用字典中出现的一个或多个单词拼接出 s 则返回 true。 注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。 示例 1: 输入: s = "leetcode", wordDict = ["leet",
阅读全文
posted @
2025-01-08 18:48
_月生
阅读(14)
推荐(0) 编辑
零钱兑换(动态规划)
摘要:给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。 计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。 你可以认为每种硬币的数量是无限的。 示例 1: 输入:coins = [1, 2, 5], amou
阅读全文
posted @
2025-01-08 18:14
_月生
阅读(8)
推荐(0) 编辑
完全平方数(动态规划)
摘要:给你一个整数 n ,返回 和为 n 的完全平方数的最少数量 。 完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。 示例 1: 输入:n = 12 输出:3 解释:12 = 4 + 4 + 4 示
阅读全文
posted @
2025-01-08 17:56
_月生
阅读(11)
推荐(0) 编辑
打家劫舍(动态规划)
摘要:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。 示例
阅读全文
posted @
2025-01-07 21:38
_月生
阅读(5)
推荐(0) 编辑
杨辉三角(动态规划)
摘要:给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows = 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]] 示例 2: 输入: numRow
阅读全文
posted @
2025-01-07 11:03
_月生
阅读(8)
推荐(0) 编辑