LeetCode——动态规划:斐波那契数列
斐波那契數(shù)列
目錄
注:具體解析請(qǐng)點(diǎn)擊鏈接進(jìn)入LeetCode題解區(qū)。
1. 爬樓梯
https://leetcode-cn.com/problems/climbing-stairs/solution/pa-lou-ti-by-leetcode/
假設(shè)你正在爬樓梯。需要 n 階你才能到達(dá)樓頂。
每次你可以爬 1 或 2 個(gè)臺(tái)階。你有多少種不同的方法可以爬到樓頂呢?
注意:給定 n 是一個(gè)正整數(shù)。
public int climbStairs(int n) {if (n == 1) {return 1;}int[] dp = new int[n + 1];dp[1] = 1;dp[2] = 2;for (int i = 3; i <= n; i++) {dp[i] = dp[i - 1] + dp[i - 2];}return dp[n];} public int climbStairs2(int n) {if (n <= 2) {return n;}int pre2 = 1;int pre1 = 2;for (int i = 3; i <= n; i++) {int cur = pre1 + pre2;pre2 = pre1;pre1 = cur;}return pre1;}2. 強(qiáng)盜搶劫
題目描述:搶劫一排住戶,但是不能搶鄰近的住戶,求最大搶劫量。
定義 dp 數(shù)組用來存儲(chǔ)最大的搶劫量,其中 dp[i] 表示搶到第 i 個(gè)住戶時(shí)的最大搶劫量。
由于不能搶劫鄰近住戶,如果搶劫了第 i -1 個(gè)住戶,那么就不能再搶劫第 i 個(gè)住戶,所以
3. 強(qiáng)盜在喚環(huán)形街區(qū)搶劫
https://leetcode-cn.com/problems/house-robber-ii
題目描述:你是一個(gè)專業(yè)的小偷,計(jì)劃偷竊沿街的房屋,每間房?jī)?nèi)都藏有一定的現(xiàn)金。這個(gè)地方所有的房屋都圍成一圈,這意味著第一個(gè)房屋和最后一個(gè)房屋是緊挨著的。同時(shí),相鄰的房屋裝有相互連通的防盜系統(tǒng),如果兩間相鄰的房屋在同一晚上被小偷闖入,系統(tǒng)會(huì)自動(dòng)報(bào)警。
給定一個(gè)代表每個(gè)房屋存放金額的非負(fù)整數(shù)數(shù)組,計(jì)算你在不觸動(dòng)警報(bào)裝置的情況下,能夠偷竊到的最高金額。
public int rob(int[] nums) {if (nums == null || nums.length == 0) {return 0;}int n = nums.length;if (n == 1) {return nums[0];}return Math.max(rob(nums, 0, n - 2), rob(nums, 1, n - 1));}private int rob(int[] nums, int first, int last) {int pre=0,cur=0,tmp;for (int i = first; i <= last; i++) {tmp = cur;cur = Math.max(cur,pre+nums[i]);pre = tmp;}return cur;}4. 信件錯(cuò)排
題目描述:定義一個(gè)數(shù)組 dp 存儲(chǔ)錯(cuò)誤方式數(shù)量,dp[i] 表示前 i 個(gè)信和信封的錯(cuò)誤方式數(shù)量。假設(shè)第 i 個(gè)信裝到第 j 個(gè)信封里面,而第 j 個(gè)信裝到第 k 個(gè)信封里面。
根據(jù) i 和 k 是否相等,有兩種情況:
- i==k,交換 i 和 k 的信后,它們的信和信封在正確的位置,但是其余 i-2 封信有 dp[i-2] 種錯(cuò)誤裝信的方式。由于 j 有 i-1 種取值,因此共有 (i-1)*dp[i-2] 種錯(cuò)誤裝信方式。
- i != k,交換 i 和 j 的信后,第 i 個(gè)信和信封在正確的位置,其余 i-1 封信有 dp[i-1] 種錯(cuò)誤裝信方式。由于 j 有 i-1種取值,因此共有 (i-1)*dp[i-1] 種錯(cuò)誤裝信方式。
綜上所述,錯(cuò)誤裝信數(shù)量方式數(shù)量為:
總結(jié)
以上是生活随笔為你收集整理的LeetCode——动态规划:斐波那契数列的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 动态规划——坐标型位操作型
- 下一篇: synchronized 面试五连击