思路一:动态规划

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. 剪绳子相关推荐

  1. 【LeetCode】【剑指offer】【剪绳子(二)】

    剑指 Offer 14- II. 剪绳子 II 给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m.n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]... ...

  2. 【LeetCode】剑指 Offer 14. 剪绳子

    [LeetCode]剑指 Offer 14. 剪绳子 文章目录 [LeetCode]剑指 Offer 14. 剪绳子 两道题目的区别在于第二题 n 的取值范围更大 package offer;publ ...

  3. 【LeetCode 剑指offer刷题】查找与排序题14:Wiggle Sort(系列)

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) Wiggle Sort II Given an unsorted array nums, reorder it su ...

  4. leetcode 打印_剑指 Offer 总结 - leetcode 剑指offer系列

    剑指 Offer 系列完结撒花!! 本篇文章是对整个系列的精华总结, 对系列的每篇文章进行了分类, 并用一句话概括每道题的思路, 方便大家理解和记忆, 当然也包含原文完整链接供大家参考 总的来说, 写 ...

  5. 【LeetCode 剑指offer刷题】矩阵题1:4 有序矩阵中的查找( 74. Search a 2D Matrix )(系列)...

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 74. Search a 2D Matrix Write an efficient algorithm that s ...

  6. 【LeetCode 剑指offer刷题】特殊数题3:204 Count Primes

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 204. Count Primes Count the number of prime numbers less t ...

  7. 【LeetCode 剑指offer刷题】树题6:28 对称二叉树(101. Symmetric Tree)

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 101. Symmetric Tree /**  * Definition for a binary tree no ...

  8. 【LeetCode 剑指offer刷题】数组题2:57 有序数组中和为s的两个数(167 Two Sum II - Input array is sorted)...

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 57 有序数组中和为s的两个数 题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,是的他们的和正好是 ...

  9. 【LeetCode 剑指offer刷题】字符串题6:67 把字符串转成整数

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) 67 把字符串转成整数 题目描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 数值为0或者字符 ...

  10. 【LeetCode 剑指offer刷题】树题16:Kth Smallest Element in a BST

    [LeetCode & 剑指offer 刷题笔记]目录(持续更新中...) Kth Smallest Element in a BST Given a binary search tree, ...

最新文章

  1. Resetting the root password for MySQL
  2. 【Android 逆向】ELF 文件格式 ( 程序头偏移量 | 节区头偏移量 | 处理器特定标志 | ELF 文件头大小 )
  3. Android init.rc执行顺序
  4. Struts入门(三)深入Struts用法讲解
  5. 跳一跳python源码下载_python 微信跳一跳和源码解读
  6. ubuntu 配置 静态ip
  7. [社团工作指南]日常工作*组织构架
  8. Java中HttpClient设置超时时间
  9. Java8新特性(Integer,Long,Byte,Short)
  10. DeepStream插件Gstreamer(一):概述
  11. Java 数据结构之双链表
  12. mysql libaio_手动编译安装mysql,报错没有libaio模块,
  13. 一文搞懂HTML+CSS+JavaScript
  14. C#2种类型时间戳(秒时间戳、毫秒时间戳)
  15. 支持预览html的解压软件,浏览器网页在线解压压缩文件工具
  16. python win32con_python win32 简单操作方法
  17. CSU——1043克里莫
  18. Flurry使用初级教程
  19. 201919102004张雪婷(在虚拟机中安装)
  20. 使用七牛云上传图片时出现Network error during preQuery和运行时出现okhttp的问题

热门文章

  1. Leetcode5633. 计算力扣银行的钱[C++题解]:模拟简单
  2. 计算机组成原理第3章-存储系统
  3. linux平台 一个简单的helloworld静态库的制作与使用
  4. c语言原始,[蓝桥杯][历届试题]回文数字 最原始的方法(C语言代码)
  5. 夜间灯光数据dn值_中国区域DMSP/OLS夜间灯光影像的校正
  6. redis 失效时间单位是秒还是毫秒_Redis 事务与过期时间详细介绍
  7. 怎么把本地的文件传给服务器,怎么把本地文件传给云服务器
  8. php和android选择器,Android_android 字体颜色选择器(ColorPicker)介绍,primary_text_yellow.xml 复制代码 代 - phpStudy...
  9. acid php5,ACID原则
  10. 表格某一列不固定其余全固定_如何利用Python一键拆分表格并进行邮件发送~