日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

最大子段和問題什么意思 最大子段和動態(tài)規(guī)劃

從今天開始呢,我們就正式開始數據結構的學習了,可以說,這是計算機專業(yè)中最為核心的一門課程,也是最為重要的一塊內容 。
這一部分,是企業(yè)招聘時最為看重的一部分,也是大家解決算法實現(xiàn)邏輯最為重要的一部分,更是幫助大家找到一份好工作的重要籌碼 。
我們今天的這道題呢,就是解決“最大子列和問題” 。
給定K個整數組成的序列{N1,N2,…,NK},“連續(xù)子列”被定義為{Ni,Ni+1,…,Nj},其中1<=i<j<K,而“最大子列和”則是找到一個所有連續(xù)子列元素的和中的最大值 。
比方說給定一組序列為{-2,11,-4,13,-5,-2},其中連續(xù)子序列{11,-4,13}則是最大值為20 。
那么最終打印輸出的結果則為20 。

最大子段和問題什么意思 最大子段和動態(tài)規(guī)劃


梳理邏輯對于函數題,特別是解決數據結構與算法題的時候,一定要靜下心來,然后梳理清楚題目的邏輯,當然了,現(xiàn)在不太會也很正常,完全可以慢慢來,但是如果要找工作的話,那可得加把勁了 。
1、輸入第一行給出正整數K(<=100000),用到一個scanf函數來輸入 。
2、第二行給出K個整數,因為我們是一個序列,所以用到的是數組 。
3、最麻煩的則是找出最大和的子序列,我們可以這樣來理解:
先從數組中的第一個元素開始加起,找到包含第一個元素的所有子序列的和,并比較大小 。
然后找出最大值的和,記錄下來 。
與此同時,下一次循環(huán)遍歷的時候就把這個和清零,但是最大值不變 。
依次繼續(xù)求和,并與最大值比較大小,記錄下相對較大的那個值 。
在所有循環(huán)都結束后,最終的那個最大值則是我們要求的最大值 。

最大子段和問題什么意思 最大子段和動態(tài)規(guī)劃


代碼實現(xiàn)//最大子列和問題#include<stdio.h>int main(){ int K;//給出正整數K int M[100000];//給出K個整數 int count;//計數法 int SUM = 0;//遍歷求和 int MAX = 0;//初始的最大值為0 scanf("%d", &K); for(int i=0;i<K;i++){scanf("%d",&M[i]);if(M[i]<0){count++;} } if(count==K){//所有的數都是0的情況下printf("0"); } for(int i = 0; i < K; i++){//從元素1開始SUM = 0;//每次循環(huán)求和的時候,求和都要變?yōu)?才行for(int j = i; j < K; j++){SUM = SUM + M[j];if(SUM > MAX){MAX = SUM;}} } printf("%d",MAX);}結果測試
最大子段和問題什么意思 最大子段和動態(tài)規(guī)劃



最大子段和問題什么意思 最大子段和動態(tài)規(guī)劃


總結【最大子段和問題什么意思 最大子段和動態(tài)規(guī)劃】這道數據結構題,可以說是數據結構章節(jié)中最為簡單的一道題目了,有難度的還在后面呢,我研究生快畢業(yè)了,也知道自己得快速提升實力了,秋招末班車以及春招開啟,一定要趕上,沖?。?!

    推薦閱讀