給定乙個整數陣列 nums ,找到乙個具有最大和的連續子陣列(子陣列最少包含乙個元素),返回其最大和
輸入: [-2,1,-3,4,-1,2,1,-5,4],
輸出: 6
解釋: 連續子陣列 [4,-1,2,1] 的和最大,為 6。
int maxsubarray(vector& nums)
}return max;
}
int maxsubarray(vector& nums)
int maxsubarrayhelper(vector&nums, int left, int right)
int mid = (left + right) / 2;
int leftsum = maxsubarrayhelper(nums, left, mid);
//注意這裡應是mid + 1,否則left + 1 = right時,會無線迴圈
int rightsum = maxsubarrayhelper(nums, mid + 1, right);
int midsum = findmaxcrossingsubarray(nums, left, mid, right);
int result = max(leftsum, rightsum);
result = max(result, midsum);
return result;
}int findmaxcrossingsubarray(vector&nums, int left, int mid, int right)
int rightsum = int_min;
sum = 0;
//注意這裡i = mid + 1,避免重複用到nums[i]
for (int i = mid + 1; i <= right; i++)
return (leftsum + rightsum);
tyvj p1305 最大自序和
輸入乙個長度為n的整數序列,從中找出一段不超過m的連續子串行,使得整個序列的和最大。例如 1,3,5,1,2,3 當m 4時,s 5 1 2 3 7 當m 2或m 3時,s 5 1 6 戳戳戳 一開始用的樸素的 錯的 演算法 過了 9個點。然後決定考慮 優化。讓我們來枚舉子序列中的 最後一位,用s ...
leetcode 53 最大自序和
給定乙個整數陣列 nums 找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。示例 輸入 2,1,3,4,1,2,1,5,4 輸出 6 解釋 連續子陣列 4,1,2,1 的和最大,為 6。高階 如果你已經實現複雜度為 o n 的解法,嘗試使用更為精妙的分治法求解。思路 簡單題,維...
leetcode 53 最大自序和
題目 給定乙個整數陣列 nums 找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。示例 輸入 2,1,3,4,1,2,1,5,4 輸出 6 解釋 連續子陣列 4,1,2,1 的和最大,為 6。高階 如果你已經實現複雜度為 o n 的解法,嘗試使用更為精妙的分治法求解 原始碼 掃...