leetcode 面試題49:醜數
題目描述
我們把只包含因子 2、3 和 5 的數稱作醜數(ugly number)。求按從小到大的順序的第 n 個醜數。
示例:
輸出: 12核心思想:解釋: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 個醜數。
解題思路:
func nthuglynumber(n int) int
dp := make(int, n)
//第乙個醜數,即1
dp[0] = 1
//三指標初始指向陣列第乙個元素
p2, p3, p5 := 0, 0, 0
cur := 1
for cur < n
if minval == dp[p3]*3
if minval == dp[p5]*5
cur++
} return dp[cur-1]
}func min(a, b, c int) int
return c
} if b < c
return c
}
leetcode 面試題47
題目描述:
在乙個 m*n 的棋盤的每一格都放有乙個禮物,每個禮物都有一定的價值(價值大於 0)。你可以從棋盤的左上角開始拿格仔裡的禮物,並每次向右或者向下移動一格、直到到達棋盤的右下角。給定乙個棋盤及其上面的禮物的價值,請計算你最多能拿到多少價值的禮物?
示例:
輸入:核心思想:[[1,3,1],
[1,5,1],
[4,2,1]
]輸出: 12
解釋: 路徑 1→3→5→2→1 可以拿到最多價值的禮物
解題思路:
func maxvalue(grid int) int
col := len(grid[0])
if col == 0
//從格仔最後一行開始
for i := row - 1; i >= 0; i--
//獲取下邊格仔的價值
if i < row-1
//比較,計算當前格仔最大價值,原地修改
grid[i][j] = grid[i][j] + max(tmp1, tmp2)
} }return grid[0][0]
}func max(a, b int) int
return b
}
leetcode 面試題10-ii
題目描述
乙隻青蛙一次可以跳上1級台階,也可以跳上2級台階。求該青蛙跳上乙個 n 級的台階總共有多少種跳法。答案需要取模 1e9+7(1000000007),如計算初始結果為:1000000008,請返回1.
示例
輸入:n = 2核心思想輸出:2
實現**
func
numways
(n int
)int
num1,num2 :=1,
1 res :=
0for i:=
2;i <=n ;i ++
return res
}
複雜度分析 golang劍指offer 010 最長上公升子串行
最長上公升子串行一定是與次長自序列有關係的,因此可以考慮使用動態規劃解題。狀態定義 dp i 表示以nums i 結束的最長上公升子串行長度 規劃過程 需要考慮兩種情況 但存在這樣的情況,nums i 前面存在多個比他小的元素,j,k,l,此時應該是對三個進行對比,選擇最大的 dp i max dp...
劍指offer全套解答 劍指offer 1 5
1.二維陣列中的查詢 在乙個二維陣列中 每個一維陣列的長度相同 每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成乙個函式,輸入這樣的乙個二維陣列和乙個整數,判斷陣列中是否含有該整數。public class solution int n array 0 length i...
劍指offer全套解答 劍指offer 36 45
36.兩個鍊錶的第乙個公共節點 輸入兩個鍊錶,找出它們的第乙個公共結點。注意因為傳入資料是鍊錶,所以錯誤測試資料的提示是用其他方式顯示的,保證傳入資料是正確的 public class solution return p 37.數字在排序陣列 現的次數 統計乙個數字在公升序陣列 現的次數。publi...