2021 1 19學習總結

2021-10-16 17:17:49 字數 2190 閱讀 2995

今天是在家打卡簽到學習的第二天_。

早上打卡8:30-8:40.

9:00-12:00 學習動態規劃的揹包問題與過橋問題

14:00-17:00 學習資料結構與演算法書上的時間複雜度與線性表的順序儲存結構與鏈式儲存結構(29~70。

晚上學習二分思想與歸納總結。

總時長6個小時。

今天主要是看了一下資料結構和學了一下新的演算法,看了一下時間複雜度的知識盲區,並且學新的演算法的確是挺磨時間去理解的。

演算法的時間複雜度是推導大o階方法。

1.用常數1取代執行時間中的所有加法常數。

2.在修改後的執行次數函式中,只保留最高端項。

3.如果最高端項存在但係數不是1的話,就去掉這個項數,即為常數1.

線性表有兩種物理結構,分別為順序儲存結構與鏈式儲存結構

順序儲存結構指的是用一段位址連續的儲存單元一次儲存線性表的資料元素,類似於開闢乙個陣列用來存放連續空間的變數。

鏈式儲存結構是為了彌補順序儲存結構的不足而產生的,像我們之前的順序儲存結構如果插入和刪除需要移動大量的元素,這就十分耗費時間了,而鏈式儲存結構它是開闢乙個結點,有資料域和指標域兩個部分,用指標域來保留後面乙個資料的位址,在插入與刪除就只需改變乙個位址就能夠完成插入刪除操作了,並且空間也可以不需要預先分配,元素個數也不受限制但是缺點是不宜查詢,需要遍歷時間複雜度為o(n),順序儲存機構的話可以直接引用下標,時間複雜度為o(1)。

動態規劃與遞迴有些相似,都是把大問題拆解成乙個個小問題從而尋求整個問題的解,但不同的是遞迴是每次子問題都要進行遞迴下去直到邊界條件結束,但是動態規劃是具有乙個記憶的特性,能夠打表儲存避免了重複計算,從而節約了時間,而且動態規劃還有乙個最優行,也就是每一步都相對是最優解,每乙個小問題都是最優解,而大問題是從這乙個個小問題的最優解得出,所以就能夠得出最終大問題的最優解。

比如說:有n個物品,它們有各自的體積和價值,現有給定容量的揹包,如何讓揹包裡裝入的物品具有最大的價值總和?**

i(物品編號) 1 2 3 4

w(體積) 2 3 4 5

v(價值) 3 4 5 6**

v(i,j)表示前i個物品,揹包容量為j時的最優情況

我們開闢乙個二維陣列來儲存dp的最優值

我們將下標為0的全部賦值為0,因為第0個物體或者體積為0的話乙個也裝不下。

我們考慮的兩種情況:

1.當前容量比該物體的體積小的話裝不下去,所以前i個物體的最大價值與前i-1個物體的價值一樣

所以應為v(i,j)=v(i-1,j);等於前一次裝入的價值。

2.當前容量比要放入物品的大,能夠裝入該物品,但是這裡就會產生兩種情況。1,在當前裝入了物品,價值會比上一次大,但對於最終整體而言卻不是價值最大的。2當前裝入物品既是當前最大也是整體最大的。

列如,當前只能裝入乙個重量為3但是價值為1的物品,但剛好如果你不裝這個物品,在後面能夠裝入乙個重量為5價值為4的物品,這樣就好影響最終的最優解。

綜上,我們在當前能夠裝入的情況下應該進行取優判斷:v(i,j)=max{v(i-1,j),v(i-1,j-w(i))+v(i)}。

過橋問題

在乙個夜黑風高的晚上,有n(n <= 50)個小朋友在橋的這邊,現在他們需要過橋,但是由於橋很窄,每次只允許不大於兩人通過,他們只有乙個手電筒,所以每次過橋的兩個人需要把手電筒帶回來,i號小朋友過橋的時間為t[i],兩個人過橋的總時間為二者中時間長者。問所有小朋友過橋的總時間最短是多少。

如: 四個人過橋花費的時間分別為 1 2 5 10,一開始我想到的是貪心,但是貪心無法取得最優解。

我們先排序,然後

第一步:1和2過去,花費時間2,然後1回來(花費時間1);

第二歩:3和4過去,花費時間10,然後2回來(花費時間2);

第三部:1和2過去,花費時間2,總耗時17。

我們總體的思想是要右邊的人中花費時間最少的人將手電筒傳過來。

每次過橋的時候最多兩個人,如果橋這邊還有人,那麼還得回來乙個人,所以我們可以用在右邊花費時間最少的人送手電筒

也就是n個人過橋的次數為2*n-3,當橋這邊只剩兩個人時只需要一次,三個人的情況為:前兩個人過去,還需要乙個人來接剩下的另外乙個人過橋,所以前面乙個來回加上接人的一次為3次,剛好符合2×3-3.

488 祖瑪遊戲 2021 11 9

你正在參與祖瑪遊戲的乙個變種。在這個祖瑪遊戲變體中,桌面上有 一排 彩球,每個球的顏色可能是 紅色 r 黃色 y 藍色 b 綠色 g 或白色 w 你的手中也有一些彩球。你的目標是 清空 桌面上所有的球。每一回合 從你手上的彩球中選出 任意一顆 然後將其插入桌面上那一排球中 兩球之間或這一排球的任一端...

2021 1 19寒假打卡Day15

定義如下規則序列 字串 空序列是規則序列 如果s是規則序列,那麼 s 和 s 也是規則序列 如果a和b都是規則序列,那麼ab也是規則序列。例如,下面的字串都是規則序列 而以下幾個則不是 jh15024551551 96371 現在,給你一些由 構成的序列,你要做的,是補全該括號序列,即掃瞄一遍原序列...

不是久違的味道2021 1 19日記

昨天立了今天覆習模電的flag,今天也確實是看了,就是很可惜看的很少很少,近乎於零吧。早上醒來,收到乙個組內同學訊息說要下午和我一起出去列印佛系老師的作業。昨天下午我在群裡面問有沒有人要列印的結果只有乙個人需要我幫忙列印的,有點小失望。中午在工位吃飯的時候碰巧遇到乙個同學,問他要不要我幫忙列印,他欣...