
动态规划
Allen_Xu17
这个作者很懒,什么都没留下…
展开
-
刷题--程序员面试金典--面试题 01.05. 一次编辑(最小编辑距离)(重点)(go)
面试题 01.05. 一次编辑字符串有三种编辑操作:插入一个字符、删除一个字符或者替换一个字符。 给定两个字符串,编写一个函数判定它们是否只需要一次(或者零次)编辑。示例1:输入:first = "pale"second = "ple"输出: True示例2:输入:first = "pales"second = "pal"输出: False来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/one-aw...原创 2020-06-19 11:37:30 · 334 阅读 · 0 评论 -
刷题---树篇---96. 不同的二叉搜索树
96. 不同的二叉搜索树难度:中等给定一个整数n,求以1 ...n为节点组成的二叉搜索树有多少种?示例:输入: 3输出: 5解释:给定 n = 3, 一共有 5 种不同结构的二叉搜索树: 1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2 / / \ \...原创 2020-06-07 14:02:42 · 198 阅读 · 0 评论 -
leetcode-----64. 最小路径和
给定一个包含非负整数的mxn网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[ [1,3,1], [1,5,1], [4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。---------------------------------------------...原创 2020-03-20 22:24:43 · 141 阅读 · 0 评论 -
leetcode----5. 最长回文子串
给定一个字符串s,找到s中最长的回文子串。你可以假设s的最大长度为 1000。示例 1:输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"-------------------------------------------------------------------------...原创 2020-03-20 22:02:23 · 145 阅读 · 0 评论 -
动态规划总结(一)---数组求子序列最值问题
经过一段时间的刷题总结,发现动态规划的一些问题的思路是有规律可循的。本次总结的题型是:给定一个数组(或者其他线性容器),求符合某一要求的子序列的最值。这种题型的规律在于,现在的状态总是建立在前一个符合要求的最值基础上,用公式可以表示为:F(i) = F(j) + G(i) , 其中,j<i<len(A). F(i)总是表示小于i的子区间中最符合题目要求的子序列,G(i)...原创 2020-03-14 21:28:51 · 569 阅读 · 0 评论 -
leetcode-----746. 使用最小花费爬楼梯
数组的每个索引做为一个阶梯,第i个阶梯对应着一个非负数的体力花费值cost[i](索引从0开始)。每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。示例1:输入: cost = [10, 15, 20]输出: 15解释: 最低花费是从co...原创 2020-03-14 21:27:42 · 293 阅读 · 0 评论 -
leetcode------53. 最大子序和
给定一个整数数组 nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释:连续子数组[4,-1,2,1] 的和最大,为6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。来源:力扣(LeetCode)链接:https://leetco...原创 2020-03-14 19:15:14 · 266 阅读 · 0 评论 -
leetcode-----1013. 将数组分成和相等的三个部分
给你一个整数数组A,只有可以将其划分为三个和相等的非空部分时才返回true,否则返回 false。形式上,如果可以找出索引i+1 < j且满足(A[0] + A[1] + ... + A[i] == A[i+1] + A[i+2] + ... + A[j-1] == A[j] + A[j-1] + ... + A[A.length - 1])就可以将数组三等分。示例...原创 2020-03-11 15:33:04 · 192 阅读 · 0 评论 -
leetcode------198. 打家劫舍
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [1,2,3,1]输出: 4解释: 偷窃 1 号房屋 (金额 = 1) ,然后偷窃 ...原创 2020-03-11 14:21:14 · 175 阅读 · 0 评论 -
动态规划学习笔记
最近开始学习动态规划算法,我的理解是动态规划算法是一个用空间换时间的算法,常用在一些求最解、计数、判断有无等问题中,且这些问题都存在大量重复的计算。 动态规划的思想就是将已经计算过的数据存储起来,在下次用到时可以直接取用,这样就消除了重复计算。而且这也是体现“动态”的地方,就是能根据之前情况进行灵活处理。 在思考动态规划相关问题时,我自己通常主要考虑四...原创 2020-03-11 13:56:50 · 146 阅读 · 0 评论