日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

最大连续子段和

發布時間:2025/6/15 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 最大连续子段和 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近在學習動態規劃,將自己的所思所想所得記錄下來,檢驗自己是否真正懂了。

?

問題描述:

給定一個數組,記錄一串數字,可正可負,現要求出其中最大的連續子段和。

?

用數組A[N]記錄所要求的數組,用數組B[N]來記錄連續子段和的狀態

通過分析,可以知道:

當B[K]>0時,無論B[K]為何值,B[K]=B[K-1]+A[K]

當B[K]<0時,也就是B[K]記錄到一個A[J]是負的,可以把B[K]變成負的,那么B[J]記錄的這一段應該截掉,應為無論后面的A[K]多大,加上個負數總不可能是最大的子段和,因此將B[K]=A[K],重新開始記錄。

?

故動態轉移方程便可得出

B[K] = MAX(B[K-1]+A[K] , A[K])

?

看個實例

k????? 1????? ?2????? ?3??????? 4
a[k] ?3?????-4???????2????????10
b[k]? 3?????-1?????? 2??????? 12

?

必須記住B[K]是狀態量,要獲得最大連續子段和,只需在數組B中掃描一遍得到最大的數即可。


?一個有N個整數元素的一維數組{A[0],A[1],....,A[N-1],A[N]},這個數組有很多連續的子數組,那么連續子數組之和的最大的一個的值是什么?

? ?先給出一個時間復雜度為O(N^2)的求解程序實現,思想很簡單,就是遍歷數組中所有的子數組,代碼如下:


[java]?view plaincopy
  • /**?
  • ?*?計算數組的最大子序列?
  • ?*?@author?win7?
  • ?*?
  • ?*/??
  • public?class?MaxSubArraySum?{??
  • ??????
  • ????public?static?int?sumN2(int?[]?array){??
  • ????????int?sum=0,maxSum=Integer.MIN_VALUE;??
  • ????????int?n=array.length;??
  • ????????int?count=0;??
  • ????????for(int?i=0;i<n;i++){??
  • ????????????sum=0;??
  • ????????????for(int?j=i;j<n;j++){??
  • ????????????????sum+=array[j];??
  • ????????????????if(sum>maxSum){??
  • ????????????????????maxSum=sum;??
  • ????????????????}??
  • ????????????????count++;??
  • ????????????}??
  • ????????}??
  • ????????System.out.println("length="+n+"||count="+count);??
  • ????????return?maxSum;??
  • ????}??
  • ????public?static?void?main(String?[]?args){??
  • //??????System.out.println("MIN_VALUE="+Integer.MIN_VALUE);??
  • ????????int?[]?array={-5,-2,-3,-5,-3,-2};??
  • ????????int?sum=MaxSubArraySum.sumN2(array);??
  • ????????System.out.println("最大子序列和="+sum);??
  • ????}??
  • ??
  • }??

  • 因為子數組求和滿足動態規劃的后無效特性,所以可以使用動態規劃的思想,從分治的算法中得到提示:可以考慮數組的第一個元素A[0],以及最大的一段數組(A[i],...A[j])跟A[0]之間的關系,有一下幾種情況:

    1.當0=i=j時,元素A[0]元素本身構成和最大的一段;

    2.當0=i<j時,和最大的一段以A[0]開始;

    3.當0<i時,元素A[0]跟和最大的一段沒有關系。

    從上面的三種情況可以將一個大問題(N個元素的數組)轉化為一個較小的問題(n-1個元素的數組)。假設知道(A[1],...,A[N-1])中包含A[1]的和最大的一段的和為start[1]。那么,根據上面分析的三種情況,不難看出(A[0],...,A[N-1])中問題的解all[0]是三種情況的最大值max{A[0],A[0]+start[1],all[1]}。通過問題分析,可以看到問題滿足無后效性,可以使用動態規劃的方法來解決。

    程序代碼實現如下:


    [java]?view plaincopy
  • /**?
  • ?*?在時間復雜度為O(N)內找出數組中最大的子序列的累加和?
  • ?*?@param?array?
  • ?*?@return?
  • ?*/??
  • public?static?int?sumN(int?[]?array){??
  • ????int?n=array.length;??
  • ????int?all=array[n-1],start=array[n-1];??
  • ????int?count=0;??
  • ????for(int?i=n-2;i>=0;i--){??
  • ????????if((start+array[i])>array[i]){??
  • ????????????start=start+array[i];??
  • ????????}else{??
  • ????????????start=array[i];??
  • ????????}??
  • ????????if(all<start){??
  • ????????????all=start;??
  • ????????}??
  • ????????count++;??
  • ????}??
  • ????System.out.println("數組長度="+array.length+"||時間復雜度="+count);????
  • ????return?all; ?

  • 總結

    以上是生活随笔為你收集整理的最大连续子段和的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 有码一区 | 国产精品系列在线 | 青草国产 | 老司机免费精品视频 | 男人舔女人下部高潮全视频 | 国产观看| 国产专区第一页 | fc2成人免费视频 | 免费看黄色a级片 | 欧洲亚洲自拍 | 日韩国产欧美在线视频 | 狠狠操网站 | 91成人国产综合久久精品 | 国产高清sp| www.国产视频.com | 日韩a级一片 | 99精品在线视频观看 | 自拍偷拍欧美日韩 | 99免费观看 | 亚洲综合av一区二区 | 69精品久久| 黄色高清在线观看 | 日本一级片免费看 | 国产女人被狂躁到高潮小说 | 日韩一区二区视频在线观看 | 超碰日日干 | 国产精选视频在线观看 | 播放一级黄色片 | 欧美成人一区二区视频 | av怡红院 | 欧美中文字幕一区二区三区 | 婷婷激情网站 | 色老板精品凹凸在线视频观看 | 国产91香蕉 | 亚洲网站在线观看 | 蜜桃视频欧美 | 91九色网| 97在线观视频免费观看 | 成人在线中文字幕 | 色四月| 国产地址| av手机在线免费观看 | 九九热这里有精品视频 | 制服诱惑一区二区三区 | 中文字幕第7页 | 成人看片| 久久777| 国产喷水吹潮视频www | aaa日韩 | h视频在线观看网站 | 国产精品二区一区二区aⅴ 一卡二卡三卡在线观看 | 欧美激情精品久久久久久免费 | 日韩三级大片 | 国产亚洲精品成人av在线 | 青青草娱乐在线 | 亚洲天堂av影院 | 三级欧美视频 | av日韩国产 | 三级网站视频 | 帮我拍拍漫画全集免费观看 | 在线看网站 | 六月激情网 | 在线观看av国产一区二区 | 亚洲精品高清无码视频 | 亚洲乱码国产乱码精品精大量 | 亚洲女同一区二区 | 阿v视频免费在线观看 | 久久男人天堂 | 伊人久久久久久久久久 | 亚洲在线视频网站 | 亚洲人成在线播放 | 毛片毛片毛片毛片毛片毛片毛片 | 国产福利影院 | 久久久久久久麻豆 | 美女扒开腿男人爽桶 | 精品国产成人av | www.youjizz.com国产| 婷婷中文在线 | 国产精品成人va在线观看 | 欧美日韩性视频 | 久久高清av | 99日韩| 日本精品在线看 | 欧美日韩一级二级三级 | 日本高清视频免费看 | 中文字幕乱码无码人妻系列蜜桃 | 高清亚洲| 免费av电影网址 | 亚洲熟区 | 亚洲在线影院 | 又黄又免费的视频 | 无码精品一区二区三区AV | 亚洲第三十七页 | 午夜免费成人 | 总裁憋尿呻吟双腿大开憋尿 | 欧美精品欧美极品欧美激情 | 少妇人妻偷人精品一区二区 | 国产乱妇4p交换乱免费视频 | 波多野 在线|