given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum.
題目簡單明瞭,就是在乙個整數串中找出和最大的子串,把最大和輸出就可以。因為這個星期老師講的是分治(divide and conquer)演算法,這道題非常的經典,有很多種解法,這一次我嘗試了用分治去求解,順便列舉一下以前曾做過的解答。input:
[-2,1,-3,4,-1,2,1,-5,4],
output:
6
explanation:
[4,-1,2,1] has the largest sum = 6.
class solution
return max;
}};
class solution
int findmax(vector
& nums, int head, int tail)
}//求三個數的最大值
int max(int num1, int num2, int num3)
//求跨越子串的最大值
int maxofmid(vector
& nums, int head, int tail)
//跨越子串的右部分
temp = 0;
for (int i = mid + 1; i <= tail ; i++)
return fontmax + backmax;
}};
演算法設計與分析 貪心演算法(二)
設有n個正整數,將它們連線成一排,組成乙個最大的多位整數。例如 n 3時,3個整數13,312,343,連成的最大整數為34331213。又如 n 4時,4個整數7,13,4,246,連成的最大整數為7424613。輸入是n個正整數,輸出是這n個正整數連成的最大多位整數,要求用貪心法求解該問題。答案...
演算法設計與分析
輸入輸出 確定性有窮性 np類問題是非確定性計算模型下的易驗證問題類。所有可以在多項式時間內求解的判定問題構成p類問題 1 二分搜尋技術 二分搜尋演算法的基本思路是對給定已排好序的n個元素a 0 n 1 在這n個元素中找出乙個特定元素x。運用分治的思想,將n個元素以n 2為中心對半分。if x a ...
演算法分析與設計
分析,此題可以用動態規劃來做。子問題為 max i max i 1 0 max i 1 nums i nums i max i 表示以nums i 結尾的子串的最大和,最後返回最大的那個即為所求,複雜度為o n class solution return max 另一種實現方法,更加簡潔,即從前往後...