Skip to content

Latest commit

 

History

History
27 lines (21 loc) · 574 Bytes

14- II. 剪绳子 II.md

File metadata and controls

27 lines (21 loc) · 574 Bytes

解题思路

由于值太大,找 max 过程中如果取余,会对后续结果有影响,所以这道题只用贪心,在每次累加时取余

1. 贪心

尽可能拆成长度为 3 的小段 当 n 为 4 时,不拆比拆成 3+1 更好 还有可能过程中就溢出了,使用 int64 防止溢出

func cuttingRope(n int) int {
    if n <= 3 {
        return n-1
    }
    var ans int64 = 1
    for n > 4 {
        ans = (ans*3)%1000000007
        n -= 3
    }
    return int(ans * int64(n)%1000000007)
}