LeetCode-剑指 Offer 14- I. 剪绳子
思路一:动态规划
1:首先我们想要求长度为n的绳子剪掉后的最大乘积,可以从前面比n小的绳子转移而来
2:用一个dp数组
记录从0到n长度的绳子剪掉后的最大乘积,也就是dp[i]
表时长度为i
的绳子剪成m段后的最大乘积,初始化dp[2]=1
3:我们把绳子剪掉第一段(长度为j)
,如果只减去1,对最后的乘积没有任何增益,所以长度为2开始剪
4:剪了第一段后,剩下(i-j)
长度可以不剪。如果不剪对应j*(i-j)
;如果剪去对应j*dp[i-j]
。取两者最大值max(j*(i-1),j * dp[i-j])
5:第一段长度j
可以取的区间为[2)
,对所有j不同的情况取最大值,因此最终dp[i]
的转移方程为dp[i] = max(dp[i],j*max(dp[i-j],(i-j)))
class Solution {public:int cuttingRope(int n) {if(n<2) return 0;vector<int> dp(n+1);//当绳子长度为i时候可能的最大乘积为dp[i]//确定初始化条件dp[2]=1; //0跟1减没有意义for(int i=3;i<=n;i++){for(int j=2;j<i;j++){ //j表示剪下来的绳子大小,当剪下1时候没意义,所以从2开始//绳子有两种方式,一种是剪下之后,剩下的再剪下最大为j*dp[i-j]//一种是剪下之后,剩下的不减了,剩的为j*(i-j);dp[i] = max(dp[i],j*max(dp[i-j],(i-j))); //里面一直跟之前的遍历减过的结果比较 }}return dp[n];}
};
LeetCode-剑指 Offer 14- I. 剪绳子相关推荐
- 【LeetCode】【剑指offer】【剪绳子(二)】
剑指 Offer 14- II. 剪绳子 II 给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m.n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]... ...
- 【LeetCode】剑指 Offer 14. 剪绳子
[LeetCode]剑指 Offer 14. 剪绳子 文章目录 [LeetCode]剑指 Offer 14. 剪绳子 两道题目的区别在于第二题 n 的取值范围更大 package offer;publ ...
- 【LeetCode 剑指offer刷题】查找与排序题14:Wiggle Sort(系列)
[LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) Wiggle Sort II Given an unsorted array nums, reorder it su ...
- leetcode 打印_剑指 Offer 总结 - leetcode 剑指offer系列
剑指 Offer 系列完结撒花!! 本篇文章是对整个系列的精华总结, 对系列的每篇文章进行了分类, 并用一句话概括每道题的思路, 方便大家理解和记忆, 当然也包含原文完整链接供大家参考 总的来说, 写 ...
- 【LeetCode 剑指offer刷题】矩阵题1:4 有序矩阵中的查找( 74. Search a 2D Matrix )(系列)...
[LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 74. Search a 2D Matrix Write an efficient algorithm that s ...
- 【LeetCode 剑指offer刷题】特殊数题3:204 Count Primes
[LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 204. Count Primes Count the number of prime numbers less t ...
- 【LeetCode 剑指offer刷题】树题6:28 对称二叉树(101. Symmetric Tree)
[LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 101. Symmetric Tree /** * Definition for a binary tree no ...
- 【LeetCode 剑指offer刷题】数组题2:57 有序数组中和为s的两个数(167 Two Sum II - Input array is sorted)...
[LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 57 有序数组中和为s的两个数 题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是 ...
- 【LeetCode 剑指offer刷题】字符串题6:67 把字符串转成整数
[LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 67 把字符串转成整数 题目描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 数值为0或者字符 ...
- 【LeetCode 剑指offer刷题】树题16:Kth Smallest Element in a BST
[LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) Kth Smallest Element in a BST Given a binary search tree, ...
最新文章
- Resetting the root password for MySQL
- 【Android 逆向】ELF 文件格式 ( 程序头偏移量 | 节区头偏移量 | 处理器特定标志 | ELF 文件头大小 )
- Android init.rc执行顺序
- Struts入门(三)深入Struts用法讲解
- 跳一跳python源码下载_python 微信跳一跳和源码解读
- ubuntu 配置 静态ip
- [社团工作指南]日常工作*组织构架
- Java中HttpClient设置超时时间
- Java8新特性(Integer,Long,Byte,Short)
- DeepStream插件Gstreamer(一):概述
- Java 数据结构之双链表
- mysql libaio_手动编译安装mysql,报错没有libaio模块,
- 一文搞懂HTML+CSS+JavaScript
- C#2种类型时间戳(秒时间戳、毫秒时间戳)
- 支持预览html的解压软件,浏览器网页在线解压压缩文件工具
- python win32con_python win32 简单操作方法
- CSU——1043克里莫
- Flurry使用初级教程
- 201919102004张雪婷(在虚拟机中安装)
- 使用七牛云上传图片时出现Network error during preQuery和运行时出现okhttp的问题
热门文章
- Leetcode5633. 计算力扣银行的钱[C++题解]:模拟简单
- 计算机组成原理第3章-存储系统
- linux平台 一个简单的helloworld静态库的制作与使用
- c语言原始,[蓝桥杯][历届试题]回文数字 最原始的方法(C语言代码)
- 夜间灯光数据dn值_中国区域DMSP/OLS夜间灯光影像的校正
- redis 失效时间单位是秒还是毫秒_Redis 事务与过期时间详细介绍
- 怎么把本地的文件传给服务器,怎么把本地文件传给云服务器
- php和android选择器,Android_android 字体颜色选择器(ColorPicker)介绍,primary_text_yellow.xml 复制代码 代 - phpStudy...
- acid php5,ACID原则
- 表格某一列不固定其余全固定_如何利用Python一键拆分表格并进行邮件发送~