[剑指Offer]13~16

分享
源代码 2024-9-13 02:51:42 89 0 来自 中国
学习利用工具

剑指Offer http://itmyhome.com/sword-means-offer/sword-means-offer.pdf
LeetCode的剑指Offer题库 https://leetcode.cn/problemset/all/
剑指 Offer 14- I. 剪绳子
给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1而且m>1),每段绳子的长度记为 k[0],k[1]...k[m-1] 。叨教 k[0]*k[1]*...*k[m-1] 大概的最大乘积是多少?比方,当绳子的长度是8时,我们把它剪发展度分别为2、3、3的三段,此时得到的最大乘积是18。
示例 1:
输入: 2输出: 1表明: 2 = 1 + 1, 1 × 1 = 1示例 2:
输入: 10输出: 36表明: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36提示:

  • 2 <= n <= 58
解法:
起首有数学推论:将绳子以相称的长度中分为多段,得到的乘积最大;尽大概将绳子以长度 3 中分为多段时,乘积最大。由此有思绪:
<ul>当 n ≤ 3 时,返回 n−1。
当 n > 3 时,<ul>
当 n % 3 = 0 时,直接返回
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-10-19 06:25, Processed in 0.146668 second(s), 32 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表