LeetCode
wudi_X
学习使人快乐!
展开
-
【LeetCode】213. 打家劫舍 II——dp
题目解答和之前的198.打家劫舍类似,但有个限制就是数组首尾相邻,因此分两种情况:从0开始和从1开始。 代码中dp1代表从0开始,dp2代表从1开始,均有如下状态转移方程: f(n) = max{f(n-1), f(n-2)+nums(n)} (f(n)代表到第n个房屋为止获得的最大金额)class Solution {public: int rob(vector<...原创 2018-08-18 17:53:50 · 438 阅读 · 0 评论 -
【LeetCode】40. 组合总和 II——回溯
题目给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。 解集不能包含重复的组合。 示例 1:输入: candidates = [10,1,2,7,6,1,5], target = 8...原创 2018-08-23 12:34:13 · 488 阅读 · 0 评论 -
【LeetCode】139. 单词拆分——dp
题目给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明: 拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。示例 1:输入: s = "leetcode", wordDict = ["leet", "code"]输出: true解释: 返回 true 因为 &quo原创 2018-08-17 17:19:48 · 427 阅读 · 0 评论 -
【LeetCode】91. 解码方法——dp
题目一条包含字母 A-Z 的消息通过以下方式进行了编码:'A' -> 1'B' -> 2...'Z' -> 26给定一个只包含数字的非空字符串,请计算解码方法的总数。示例 1:输入: "12"输出: 2解释: 它可以解码为 "AB"(1 2)或者 "L"(12)。示例 2:输入: "226"输出: 3解释: 它可以解码为 "原创 2018-08-17 16:09:05 · 395 阅读 · 0 评论 -
【LeetCode】63. 不同路径 II——dp
题目一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。示例 1:输入:[ [0,0,0], [0,1,0],...原创 2018-08-17 15:31:32 · 270 阅读 · 0 评论 -
【LeetCode】647. 回文子串
题目给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串。示例 1:输入: "abc"输出: 3解释: 三个回文子串: "a", "b", "c".示例 2:输入: "aaa"输出: 6说明: 6个回文子串: "a", "a", "a原创 2018-08-16 23:15:41 · 467 阅读 · 0 评论 -
【LeetCode】120. 三角形最小路径和——dp
题目给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。例如,给定三角形:[ [2], [3,4], [6,5,7], [4,1,8,3]]自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。说明:如果你可以只使用 O(n) 的额外空间(n 为三角形的总行数)来解决这个问题,那么你的算法会很...原创 2018-08-16 16:50:21 · 483 阅读 · 0 评论 -
【LeetCode】64. 最小路径和——dp
题目给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[ [1,3,1], [1,5,1], [4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。解答f(m,n)表示到达m,n位置所需的最短路径,而到达该位置有两种方法:经过(...原创 2018-08-16 11:59:46 · 513 阅读 · 0 评论 -
【LeetCode】70. 爬楼梯——dp
题目数组的每个索引做为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 cost[i] (索引从0开始)。每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。示例输入: cost = [1, 100, 1, 1, 1, 100, 1, 1, 1...原创 2018-08-16 11:54:47 · 412 阅读 · 0 评论 -
【LeetCode】198. 打家劫舍——dp
题目你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。 示例输入: [2,7,9,3,1]输出: 12解释: 偷窃 1 号房屋 (金额 = 2), 偷...原创 2018-08-16 11:49:50 · 278 阅读 · 0 评论 -
【LeetCode】413. 等差数列划分——dp
题目如果一个数列至少有三个元素,并且任意两个相邻元素之差相同,则称该数列为等差数列。例如,以下数列为等差数列:1, 3, 5, 7, 97, 7, 7, 73, -1, -5, -9以下数列不是等差数列。1, 1, 2, 5, 7数组 A 包含 N 个数,且索引从0开始。数组 A 的一个子数组划分为数组 (P, Q),P 与 Q 是整数且满足 0 &lt;= P &lt...原创 2018-08-16 11:43:35 · 613 阅读 · 0 评论 -
【LeetCode】304. 二维区域和检索 - 矩阵不可变——dp
题目给定一个二维矩阵,计算其子矩形范围内元素的总和,该子矩阵的左上角为 (row1, col1) ,右下角为 (row2, col2)。 上图子矩阵左上角 (row1, col1) = (2, 1) ,右下角(row2, col2) = (4, 3),该子矩形内元素的总和为 8。 示例:给定 matrix = [ [3, 0, 1, 4, 2], [5, 6, 3, 2...原创 2018-08-21 12:30:55 · 945 阅读 · 0 评论