課程練習的設計過程

2022-09-09 01:54:09 字數 641 閱讀 2558

在新的軟體工程課堂上,老師留了乙個課堂練習小題。

問題描述:返回乙個整數陣列中最大子陣列的和。

要求:(1)輸入乙個整形陣列,陣列裡有正數,也有負數。

(2)陣列中連續的乙個或多個整數組成了乙個子陣列,每個子陣列都有乙個和。

(3)求所有子陣列的和的最大值,要求時間複雜度為o(n).

設計思路:假設存在乙個整形陣列,長度為n,其中陣列中既有正數,也有度數。

首先遍歷一遍整個陣列,找出陣列中所有的負數,並將每兩個相鄰的負數間的所有正數陣列記為i[1],i[2],i[3]……

則整個陣列就變為i[1]  a1  i[2]  a2  i[3]  a3……(其中a代表所有負數)。

第二步,找出所有正數陣列中和最大的陣列i[m]。

第三步,整個陣列就像這樣…… i[m-1]  a(m-1)     i[m] am i[m+1]………記k=i[m]分別求出k(1)=i[m]+a(m-1)+i[m-1]

k(2)=i[m]+a(m-1)+i[m-1]+a(m-2)+i[m-2]一直向i[m]前面相加。最後在k,k(1),k(2)……中取出最大值k(m)。

第四步,以相同的方法將i[m]後面的最大值求出來,記為l(n)。

則整個陣列的最大陣列的和就是k(m)+l(n),最大值的陣列就是其對應的陣列。

SDAU課程練習2 1008

a有1數m,b來猜.b每猜一次,a就說 太大 太小 或 對了 問b猜n次可以猜到的最大數。input 第1行是整數t,表示有t組資料,下面有t行 每行乙個整數n 1 n 30 output 猜n次可以猜到的最大數 sample input 213 sample output 1 7 author z...

SDAU 課程練習2 1002

f x 6 x 7 8 x 6 7 x 3 5 x 2 y x sample output 74.4291 178.8534 author redow 題目大意 給定函式和 y 值 求函式最小值。思路 連續求導可知導函式單調遞增,並且 f 0 0 f 100 0那麼導函式的零點就是原函式的最小值。二...

課程練習 軟體安全

第一空 文件第二空 資料第一空 70第一空 軟體漏洞 第二空 惡意 第三空 軟體侵權 第一空 漏洞挖掘 第二空 漏洞驗證 我的答案 long foo int x,int y 我的答案 along foo int x,int y 我的答案 aint i 3 unsigned short ui i pr...