題目:返回乙個整數陣列中最大子陣列的和。
要求:1、輸入乙個整型陣列,陣列裡有正書和負數。
2、陣列中連續的乙個或者多個整數組,每個子陣列都有乙個和。
3、求所有子陣列的和的最大值。要求時間複雜度為0(n)。
設計思想:
1、定義一維陣列,為實現可以輸入任意多個值在此處用到vectors容器。
2、輸入
3、實現方法:從兩頭進行。以陣列的前端為例,比較下標為0與下標為1的兩個元素進行比較選擇,若下標為0的元素的數值小於0則直接捨棄,若大於零則將該元素的值與下標為1的元素相加並賦值給下標為1的元素,在進行迴圈。
程式**:
#include#include執行結果截圖:#include
using
namespace
std;
intmain()
iz=ivec1.size();
cout
<< "
數字元素的個數:
"<< iz <
for(int i = 0;i < iz/2;i++)
if(ivec1[i] > 0
)
ivec1[i+1] =t;
}for(int i = iz-1;i > iz/2+1;i--)
if(ivec1[i] > 0
)
ivec1[i-1] =t;
}if(ivec1[iz/2]>=0
)
else
max = ivec1[iz/2+1
]; cout
<< "最大"
<
return0;
}
反思總結:這個程式僅僅是考慮了最大值時正數的情況;
遇到的問題:
1、隨意輸入任意個整型數字(用vectors容器)
2、定義變數max比較儲存最大值(開始被忽略了)
3、篩選時要從兩頭進行。
4、有些情況不能正常執行。
6 1 課堂練習
1.求正整數2和100之間的完全數。完全數 因子之和等於它本身的自然數,如6 1 2 3 include using namespace std intjudge int x int main intjudge int x 2.程式設計求2 n n為大於2的正整數 中有多少個素數。include i...
6 2 課堂練習
1 用遞迴的方法求1 2 3 n的值。include using namespace std intcalculate int n int main intcalculate int n 2 用遞迴函式輸出斐波那契數列第n項。0,1,1,2,3,5,8,13 include using namesp...
2020 6 6課堂練習反思
照著案例敲 其實修改一些地方就ok了 但思路固定了 仿照前面的 先是跟前面一樣直接設定物件屬性賦值 如 retangle.setr 3 但是後面老師的新案例是需要在鍵盤輸入值 修改過後用了 scanner sc new scanner system.in system.out.print c c s...