演算法設計與應用基礎作業第二週

2021-07-27 21:56:32 字數 1698 閱讀 9568

53. maximum subarray          

descripyion:

find the contiguous subarray within an array (containing at least one number) which has the largest sum.

for example, given the array[-2,1,-3,4,-1,2,1,-5,4],

the contiguous subarray[4,-1,2,1]has the largest sum =6.

分析:這道題用分置的思想來做:

和最大的子陣列只能出現在三個位置:(從中間分開)左邊、中間、(從中間分開)右邊。

所以分別求出(從中間分開)左邊和最大的子陣列、中間和最大的子陣列、(從中間分開)右邊和最大的子陣列。

然後比較三者中最大的子陣列就是所求的子陣列。

my c ++ code:

class solution 

static int max(int a, int b, int c)

static int maxsubsum(vector & a , int left, int right)

center = (left + right)/2;

maxleftsum = maxsubsum(a,left,center);

maxrightsum = maxsubsum(a,center+1,right);

maxleftbordersum = a[center];

leftbordersum = 0 ;

for(i = center ;i >= left;i--)

maxrightbordersum = a[center + 1];

rightbordersum = 0 ;

for(i = center+1;i <= right;i++)

return max(maxleftsum,maxrightsum,maxleftbordersum + maxrightbordersum);

} int maxsubarray(vector& nums)

};

171. excel sheet column number          

description:

related to question excel sheet column title

for example:

a -> 1

b -> 2

c -> 3

...z -> 26

aa -> 27

ab -> 28

分析:這道題可以模擬十進位制數字的表示來做,例如:
121 = 1*10^2+2*10^1+1*10^0
因此,就可以輕易地寫出如下**:
my c++ code:
class solution 

return total ;

}};

演算法設計與應用基礎 第二週(1)

add to list description submission solutions n 2 times.you may assume that the array is non empty and the majority element always exist in the array.演...

第二週基礎作業

請在第一周作業的基礎上,繼續完成 找出給定的檔案中陣列的最大值及其對應的最小下標 下標從0開始 並將最大值和對應的最小下標數值寫入檔案。輸入 請建立以自己英文名字命名的txt檔案,並輸入陣列元素數值,元素值之間用逗號分隔。輸出在不刪除原有檔案內容的情況下,將最大值和對應的最小下標數值寫入檔案。實驗 ...

第二週基礎作業

輸入格式 輸入在第一行中給出乙個正整數n 1輸出格式 在一行中輸出最大值及最大值的最小下標,中間用乙個空格分開。輸入樣例 6 2 8 10 1 9 10 輸出樣例 10 2 include includeint main void scanf d n n fprintf fp,d n n for i...