so鬱悶,我先把老師提出的問題寫出來
;返回乙個二維整數陣列中最大聯通子陣列的和。
要求:輸入乙個二維整形陣列,陣列裡有正數也有負數。
求所有子陣列的和的最大值。下面是給的示例圖:
最近已經完全的陷入了程式設計的怪圈,自己完全沒找到自己的方向吧,廢話不多說,直接上問題:在子陣列問題上我覺得基本都是一位子陣列的變形,應該不會有特別的變化,最多是難度上去,但是基本的思想不會變,今天我發現錯了,可能是我錯了。
我的想法:在網上看**找到的靈感:因為覺得老師上課講的圖的方法有些麻煩所以就想還是用一維陣列的方法ac。開始就是找二維陣列中每個一維陣列的最大子陣列的起始點,然後看能否聯通,能聯通就直接相加,不能連就去找一條能聯的路徑,最後加一種特殊的情況,就好了。然而到了真正重新考慮這個模糊的找一條代價最小的路徑,我茫然了,這還是需要用圖來解決吧。先把**貼出來,後面一定把問題完善一下,如果有好的建議就請@我,謝謝。
#includeusing namespace std;近期完善,謝謝void max_place(int row,int &max,int fl,int &start,int &end);
int main()
for(i=0;i=end_k[i+1])
//第一行在第二行左邊
if(start_k[i+1]>=end_k[i])
//單獨正數的情況
for(j=start_k[i];j0)
max2+=a[i+1][j];
}} cout<
else
b[i]=s;
} //
int max_num=b[0];
for(int i=0;imax_num)
}for(int i=end;i>=0;i--) }
max=max_num; //返回最大值
}
挑選最大值子陣列
今天寫了個簡單演算法,挑選出滿足條件的子陣列 1.子陣列內的值相加總和最大 用乙個start來定位子陣列的起點,輸出從起點到迴圈的點的子陣列資訊 def sub array arr start,total num,result arr 0,arr 0 result num arr 0 for i i...
子陣列之和的最大值
給定乙個陣列,查詢這個陣列的子陣列的最大和 比如 2,5,3,6,4,8,6 輸出最大和8 分析 假設已經找到乙個子陣列的最大和,這個子陣列是從陣列索引i到索引j。可以用如下式子描述,cur max a i j 對於下乙個數,也就是索引為j 1,這個最大和是否 將a j 1 加入cur max,需要...
子陣列之和的最大值
感謝firo july 2010.06.05。algorithm 1 時間效率為o n n n intmaxsubsequencesum1 const inta,intn return maxsum algorithm 2 時間效率為o n n intmaxsubsequencesum2 const...