一.題目
輸入乙個二維整形陣列,陣列裡有正數也有負數。
求所有子陣列的和的最大值。
二.設計思想
(方法一)首先若要對二維陣列進行分析,通常想要把它化簡成為乙個一維陣列。再先求每個一維陣列的最大子陣列和,並記下每行最大一維子陣列的下標。這是就會分兩種情況:第一種是行之間的最大子陣列是相連的,這時就可以直接相加得到;第二種是不相連的,,這時候就把每行的最大子陣列看成乙個整體,再使每個最大陣列塊進行相連,求使其相連的最小代價。最後得到的就是最大聯通子陣列的和。
(方法二)在二維整形陣列中,資料可能會有正也有負,要求最大值,我們重點關注正數,所以要首先判斷二維陣列中哪些位置上的數是正數,利用另乙個二維陣列記錄正數的位置,然後判斷哪些數是連通的。首先定位這個二維陣列中的最大值,然後在分析這個值周圍的4個數,聯通這4個數中的正數,若全為負數,則查詢次大值,並與最大值聯通,判斷聯通前與聯通後值得大小,若變小則不聯通最大值,若變大則聯通最大值,以此類推,直到最大聯通子陣列怎麼聯通都比原來的值小。
返回乙個二維整數陣列中最大聯通子陣列的和
題目 返回乙個二維整數陣列中最大聯通子陣列的和 要求 輸入乙個二維整形陣列,陣列裡有正數也有負數。求所有子陣列的和的最大值 include include include using namespace std define max 100 void main cout for int i 0 if...
返回乙個二維整數陣列中最大子陣列的和
作業要求 1 輸入乙個二維整形陣列,陣列裡有正數有負數。2 二維陣列中連續的乙個子矩陣組成乙個子陣列。3 求所有子陣列的和的最大值。設計思想 1 將二維陣列分解成一維陣列,使用一位陣列求最大子陣列之和的方法。2 列舉出每乙個子陣列值的大小,然後進行比較。3 最終求得二維陣列最大子陣列之和。出現的問題...
返回乙個二維整數陣列中最大子陣列的和
一 題目及要求 題目 返回乙個二維整數陣列中最大子陣列的和。要求 輸入乙個二維整形陣列,陣列裡有正數也有負數。二維陣列首尾相接,象個一條首尾相接帶子一樣。陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。求所有子陣列的和的最大值。二 解題思路 因為是二維陣列首尾相連,所以將兩個同樣的陣...