2021 1 17小菜雞學習的日常。

2021-10-16 09:01:46 字數 1508 閱讀 7436

**自己的學習小記錄之最大子串行和**

今天看了最大子串行和和問題,感覺乙個優質的演算法是真的猛!不多說,記錄一下四種求他們的方法。

**第一種**(就是舉出每乙個子串行)

**如下

#include

#include

intmaxsubsum1

(int a,

int n )

//k這個迴圈是為了求子序列的和,個數為j-k+1,i是控制從第幾個開始加,debug乙個個去看慢慢看懂得哈哈,自己一開始也不太清楚。時間複雜度是n*n*n即o(n^3).

if(maxmax=sum;

}return max;

}int

main()

;int n=10;

printf

("%d"

,maxsubsum1

(a,n));

return0;

}

第二種(略微比第一種高階一點)

**如下

#include

#include

intmaxsubsum1

(int a,

int n )

//避免了求子序列每一次都從a[0]開始加,每加一次就比較一次,比上面那個好理解而且時間複雜度為n*n即o(n^2);

}return max;

}int

main()

;int n=10;

printf

("%d"

,maxsubsum1

(a,n));

return0;

}

第三種(比較複雜,目前看懂了但感覺寫還是有點困難,時間複雜度為o(nlogn))

**比較長,應用了遞迴和分、治思想哈哈細緻的我也不太清楚。主要思想還是看懂了。

主要思想如下:

4 -3 5 -2

-1 2 6 -2

如果這八個數找最大子串行把他均勻分為兩部分,前面部分最大子串行是6,後面的是8,前面的所有和是4後面的所有和是7.比較6 8 4+7這三個數中的最大值就是最大子串行。前半部分後半部分又可以分為前半部分後半部分,就開始遞迴了。感覺自己現在水平不行,不是很能理解。

第四種(最簡單也耗時短的一種時間複雜度為o(n^2))

**如下

#include

#include

intmax

(int a,

int n)

return max;

}int

main()

;int n=10;

printf

("%d"

,max

(a,n));

return0;

}

這些僅是自己學習記錄,肯定是看了書看了其他博主的文章。望各位大佬多多指教!

小菜雞學習包之requests init

from exceptions import requestsdependencywarning首先是這個from import,我這個小菜雞去查了一下 就是絕對 absolute 和相對 relative 引入的區別 import會去sys.modules 乙個字典,記錄了所有預載入的模組 裡面查...

初學Python的小菜雞 Day1

print是在python中扮演著輸出的角色,他可以直接輸出變數,也可以輸出字串,但是要與學習c語言的時候相區別,這裡的print不等於printf,不可以把c語言中的輸出嫁接到python中。下列應該是一些學到的print的幾種型別 1 直接輸出字串 print i love you 注意三代的p...

前端小菜雞實習期的奮鬥史

從沒有任何實習經驗開始 正式開始實習工作的第一天,我們四個實習生 實際上只有三個在做前端,後來又走了乙個 都到齊了,我們的組長給我們分配了乙個任務 提供三個psd素材,乙個是h5頁面的,乙個是pc端的,還有乙個是h5頁面時導航欄展開時的具體模樣,要求我們用bootstrap jquery做出頁面,最...