golang劍指offer 010 最長上公升子串行

2021-10-03 05:16:48 字數 807 閱讀 3222

最長上公升子串行一定是與次長自序列有關係的,因此可以考慮使用動態規劃解題。

狀態定義

dp[i]表示以nums[i]結束的最長上公升子串行長度

規劃過程

需要考慮兩種情況:

但存在這樣的情況,nums[i]前面存在多個比他小的元素,j,k,l,此時應該是對三個進行對比,選擇最大的:

dp[i]

=max

(dp[j]+1

, dp[k]+1

, dp[l]+1

)

具體**為:

for j:=

0; j}

綜上,題解**為:

func

lengthoflis

(nums [

]int

)int

dp :=

make([

]int

,len

(nums)

) result :=

1for i:=

0; i<

len(nums)

; i++

} result =

max(result, dp[i])}

return result

}func

max(a, b int

)int

return b

}

劍指offer01 替換空格

如下 coding utf 8 class solution s 源字串 defreplacespace self,s write code here s s.replace 20 起初我是這樣寫的 輸出結果就和原來的s相同 因為python中的字串不可變 所以必須重新賦給乙個變數 s1 s.rep...

劍指offer 01 二維陣列的查詢

在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。由題意知,陣列是有序的,既然有序就可以不用雙重迴圈找值 考慮中間值,即若大於往 找,若小於則往 找 得出最左下...

劍指offer 01二維陣列中的查詢

二叉排序樹的定義 二叉排序樹,又稱為二叉查詢樹。它或者是一顆空樹,或者具有下列性質的二叉樹。若它的左子樹不空,則左子樹上所有節點的值均小於它的根節點的值 若它的右子樹不空,則右子樹上所有節點的值均大於它的根節點的值 它的左 右子樹也分別為二叉排序樹。這種樹模式下的搜尋途徑可以遍歷或預判所有可能性 比...