动态规划
哈哈大师2017
笨鸟先飞
展开
-
Leetcode 343. 整数拆分(Integer Break)
给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。例如,给定 n = 2,返回1(2 = 1 + 1);给定 n = 10,返回36(10 = 3 + 3 + 4)。注意:你可以假设 n 不小于2且不大于58。做题之前是选标签的,所以直接用动态规划的思想解题,一般遇到这种题,我会先在草稿纸上枚举前几个查找规律.用dp记录每个整数n的最大拆分乘积...原创 2018-04-29 15:07:33 · 531 阅读 · 0 评论 -
leetcode357. 计算各个位数不同的数字个数(Count Numbers with Unique Digits )
给定一个非负整数 n,计算各位数字都不同的数字 x 的个数,其中 0 ≤ x < 10n。示例:给定 n = 2,返回 91。(答案应该是除[11,22,33,44,55,66,77,88,99]外,0 ≤ x < 100 间的所有数字)一道简单的数数问题,没去想简单的方法,直接枚举判断是否符合条件。这里判断的时候用到了set判断是否有重复元素。细节见代码:class Solution...原创 2018-04-29 16:02:55 · 812 阅读 · 0 评论 -
309. 最佳买卖股票时机含冷冻期(leetcode/C++)
给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。示例:prices = [1, 2, 3, 0, 2] maxProfit = 3 transactions ...原创 2018-05-15 14:48:40 · 1878 阅读 · 1 评论