摘要:
题目描述 :在一个 m n 的棋盘的每一格都放有一个礼物,每个礼物都有一定的价值(价值大于 0)。你可以从棋盘的左上角开始拿格子里的礼物,并每次向右或者向下移动一格、直到到达棋盘的右下角。给定一个棋盘及其上面的礼物的价值,请计算你最多能拿到多少价值的礼物? 解法:动态规划 声明状态数组 是一个 m\ 阅读全文
摘要:
题目描述 :请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子字符串的长度。 题目分析 留意最长子串和子序列不是一个概念。例如对“pwwkew”来说,最长子串是“wke”,“pwke”是其中一个子序列。 在不考虑时间的情况下,直接暴力法对所有的子串进行检查。复杂度是$O(N^3)$,会 阅读全文
摘要:
题目描述 :我们把只包含因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。 解法 1: 动态规划 因为丑数只包含质因数 2, 3, 5,所以对于下个丑数来说,一定是前面某个丑数乘 3、乘 4 或者乘 5 所得。 准备三个指针 ptr2、ptr3、ptr 阅读全文
摘要:
虽然这题在 leetcode 上标注的是「简单」难度,但是解法有 4 种,并且都非常具有代表性。比较容易想到的是基础的动态规划法。 解法 1:动态规划 定义状态数组 的含义:数组中元素下标为 的连续子数组最大和。 状态转移的过程如下: 初始情况: 若 ,那么 若 `nums[i] 0) { dp[i 阅读全文