随笔分类 -  力扣:动态规划

摘要:877. 石子游戏 亚历克斯和李用几堆石子在做游戏。偶数堆石子排成一行,每堆都有正整数颗石子 piles[i] 。 游戏以谁手中的石子最多来决出胜负。石子的总数是奇数,所以没有平局。 亚历克斯和李轮流进行,亚历克斯先开始。 每回合,玩家从行的开始或结束处取走整堆石头。 这种情况一直持续到没有更多的石 阅读全文
posted @ 2021-06-17 23:07 andymori 阅读(60) 评论(0) 推荐(0)
摘要:1269. 停在原地的方案数 有一个长度为 arrLen 的数组,开始有一个指针在索引 0 处。 每一步操作中,你可以将指针向左或向右移动 1 步,或者停在原地(指针不能被移动到数组范围外)。 给你两个整数 steps 和 arrLen ,请你计算并返回:在恰好执行 steps 次操作以后,指针仍然 阅读全文
posted @ 2021-05-13 10:59 andymori 阅读(74) 评论(0) 推荐(0)
摘要:740. 删除并获得点数 给你一个整数数组 nums ,你可以对它进行一些操作。 每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数。之后,你必须删除每个等于 nums[i] - 1 或 nums[i] + 1 的元素。 开始你拥有 0 个点数。返回你能通过这些操作获得 阅读全文
posted @ 2021-05-05 21:26 andymori 阅读(61) 评论(0) 推荐(0)
摘要:139. 单词拆分 给定一个非空字符串 s 和一个包含非空单词的列表 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。 说明: 拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。 示例 1: 输入: s = "leetcode", wordDict = 阅读全文
posted @ 2021-04-28 20:53 andymori 阅读(121) 评论(0) 推荐(0)
摘要:377. 组合总和 Ⅳ 给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。 题目数据保证答案符合 32 位整数范围。 ** nums 中所有元素均不相同** 示例 1: 输入:nums = [1,2,3 阅读全文
posted @ 2021-04-25 00:01 andymori 阅读(76) 评论(0) 推荐(0)
摘要:300. 最长递增子序列 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。 示例 1: 输入:nums = [10,9,2, 阅读全文
posted @ 2021-04-21 20:04 andymori 阅读(72) 评论(0) 推荐(0)
摘要:279. 完全平方数 给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n。你需要让组成和的完全平方数的个数最少。 给你一个整数 n ,返回和为 n 的完全平方数的 最少数量 。 完全平方数 是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整 阅读全文
posted @ 2021-04-21 19:53 andymori 阅读(105) 评论(0) 推荐(0)
摘要:91. 解码方法 一条包含字母 A-Z 的消息通过以下映射进行了 编码 : 'A' -> 1 'B' -> 2 ... 'Z' -> 26 要 解码 已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可能有多种方法)。例如,"11106" 可以映射为: "AAJF" ,将消息分组为 (1 阅读全文
posted @ 2021-04-21 11:41 andymori 阅读(110) 评论(0) 推荐(0)
摘要:1143. 最长公共子序列 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。 阅读全文
posted @ 2021-04-18 22:37 andymori 阅读(75) 评论(0) 推荐(0)
摘要:121. 买卖股票的最佳时机 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大利润。如果 阅读全文
posted @ 2021-04-14 01:03 andymori 阅读(74) 评论(0) 推荐(0)
摘要:45. 跳跃游戏 II 给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 你的目标是使用最少的跳跃次数到达数组的最后一个位置。 示例: 输入: [2,3,1,1,4] 输出: 2 解释: 跳到最后一个位置的最小跳跃数是 2。 从下标为 0 跳到下 阅读全文
posted @ 2021-04-12 23:01 andymori 阅读(49) 评论(0) 推荐(0)
摘要:221. 最大正方形 在一个由 '0' 和 '1' 组成的二维矩阵内,找到只包含 '1' 的最大正方形,并返回其面积。 示例 1: 输入:matrix = [["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1&qu 阅读全文
posted @ 2021-04-12 01:01 andymori 阅读(90) 评论(0) 推荐(0)
摘要:64. 最小路径和 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 说明:每次只能向下或者向右移动一步。 示例 1: 输入:grid = [[1,3,1],[1,5,1],[4,2,1]] 输出:7 解释:因为路径 1→3→1→1 阅读全文
posted @ 2021-04-11 17:31 andymori 阅读(89) 评论(0) 推荐(0)
摘要:3. 无重复字符的最长子串 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 示例1: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 动态规划: dp数组表示前$i$个字符串的最长无重复子序列长度。 更新规则是, 阅读全文
posted @ 2021-04-11 14:53 andymori 阅读(179) 评论(0) 推荐(0)
摘要:5. 最长回文子串 给你一个字符串 s,找到 s 中最长的回文子串。 示例1: 输入:s = "babad" 输出:"bab" 解释:"aba" 同样是符合题意的答案。 动态规划 本题最重要的是思考dp数组代表的是什么含义,$dp[i][j]$是布尔类型,代表从$s[i...j]$是否为回文串。更新 阅读全文
posted @ 2021-04-11 14:16 andymori 阅读(57) 评论(0) 推荐(0)