演算法設計與分析(二)

2021-08-28 03:52:24 字數 889 閱讀 6017

given an integer array nums, find the contiguous subarray (containing at least one number) which has the largest sum and return its sum.

input:[-2,1,-3,4,-1,2,1,-5,4],

output:6

explanation:[4,-1,2,1] has the largest sum = 6.

題目簡單明瞭,就是在乙個整數串中找出和最大的子串,把最大和輸出就可以。因為這個星期老師講的是分治(divide and conquer)演算法,這道題非常的經典,有很多種解法,這一次我嘗試了用分治去求解,順便列舉一下以前曾做過的解答。

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 另一種實現方法,更加簡潔,即從前往後...