Leetcode騰訊精選練習22

2021-09-27 04:03:36 字數 898 閱讀 4602

原題:leetcode62 不同路徑

乙個機械人位於乙個 m x n 網格的左上角 (起始點在下圖中標記為「start」 )。

機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角(在下圖中標記為「finish」)。

問總共有多少條不同的路徑?

例如,上圖是乙個7 x 3 的網格。有多少可能的路徑?

1.數學方法

看到這題 腦袋裡面馬上就想到高中排列組合問題,直接用排列組合就能得到路徑關於m,n的表示式了,程式設計只用算階乘就行了。當然,這個只是寫得好玩,還是得用別的方法才行。

2.遞迴

很容易理解,當m=n=1的時候路徑是一條,其他時候 座標m,n的點的路徑是點m-1,n和點m,n-1路徑的和。這樣就能用遞迴去寫了。

但是執行卻超出了時間限制。

public class solution 

else

}}

3.動態規劃

這個是看了馬老師的blog之後知道的方法。感覺原理和我用遞迴一樣,只是對於每個座標m,n 都用座標m,n的點的路徑是點m-1,n和點m,n-1路徑的和這個規律給出了路徑數。blog鏈結如下

所以這裡有乙個問題,同樣的原理下,為什麼遞迴的方法執行起來比動態規劃要慢。我感覺它們執行的運算都是一樣的每個m,n座標就算了一次。

Leetcode騰訊精選練習2

原題 兩個大小為 m 和 n 的排序陣列 nums1 和 nums2 請找出兩個排序陣列的中位數並且總的執行時間複雜度為 o log m n 示例 1 nums1 1,3 nums2 2 中位數是 2.0 示例 2 nums1 1,2 nums2 3,4 中位數是 2 3 2 2.5 看到這題目自然...

Leetcode騰訊精選練習04

原題 leetcode7 給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。示例 1 輸入 123 輸出 321 示例 2 輸入 123 輸出 321 示例 3 輸入 120 輸出 21 注意 假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 231,231 1...

Leetcode騰訊精選練習05

請你來實現乙個atoi函式,使其能將字串轉換成整數。首先,該函式會根據需要丟棄無用的開頭空格字元,直到尋找到第乙個非空格的字元為止。當我們尋找到的第乙個非空字元為正或者負號時,則將該符號與之後面盡可能多的連續數字組合起來,作為該整數的正負號 假如第乙個非空字元是數字,則直接將其與之後連續的數字字元組...