程序员面试金典 - 面试题 16.17. 连续数列(DP/分治)
生活随笔
收集整理的這篇文章主要介紹了
程序员面试金典 - 面试题 16.17. 连续数列(DP/分治)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 題目
給定一個整數數組(有正數有負數),找出總和最大的連續數列,并返回總和。
示例: 輸入: [-2,1,-3,4,-1,2,1,-5,4] 輸出: 6 解釋: 連續子數組 [4,-1,2,1] 的和最大,為 6。進階: 如果你已經實現復雜度為 O(n) 的解法,嘗試使用更為精妙的分治法求解。來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/contiguous-sequence-lcci
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
2.1 動態規劃
- dp[i] 表示包含第i位數字的最大和
- 如果dp[i-1] > 0,則dp[i] = dp[i-1] + nums[i]
- 當前狀態只與前面一個狀態有關,可以壓縮
2. 分治
- 類似歸并排序的思想
總結
以上是生活随笔為你收集整理的程序员面试金典 - 面试题 16.17. 连续数列(DP/分治)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 409. 最长回文串(
- 下一篇: LeetCode 738. 单调递增的数