當前位置:
首頁 >
LeetCode 1444. 切披萨的方案数(DP)
發布時間:2024/7/5
32
豆豆
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 1444. 切披萨的方案数(DP)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 題目
給你一個 rows x cols 大小的矩形披薩和一個整數 k ,矩形包含兩種字符: ‘A’ (表示蘋果)和 ‘.’ (表示空白格子)。
你需要切披薩 k-1 次,得到 k 塊披薩并送給別人。
切披薩的每一刀,先要選擇是向垂直還是水平方向切,再在矩形的邊界上選一個切的位置,將披薩一分為二。
如果垂直地切披薩,那么需要把左邊的部分送給一個人,如果水平地切,那么需要把上面的部分送給一個人。
在切完最后一刀后,需要把剩下來的一塊送給最后一個人。
請你返回確保每一塊披薩包含 至少 一個蘋果的切披薩方案數。
由于答案可能是個很大的數字,請你返回它對 10^9 + 7 取余的結果。
來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/number-of-ways-of-cutting-a-pizza
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
- 先用dp方法求出以(i,j)位置為右下角,左上角為(0,0)的區域的蘋果數量
- 建立3維數組,dp[i][j][k]表示切完k次后,剩余蛋糕左上角 在i, j位置時的方案數
- 初始化,dp[0][0][0] = 1
- 樣本維度為切的次數 k
- 狀態維度,這次切之前的狀態(蛋糕左上角位置 i, j)
- 狀態轉移,這次切完后蛋糕左上角位置(橫向切,ni,j;豎向切,i, nj,切的次數 +1)
- 轉移條件:切出去的蛋糕當中有蘋果(用上面求得的蘋果數量,dp公式求得)
- 最后求結果總和:最后的一塊蛋糕中有蘋果,sum += dp[i][j][k-1]
40 ms 8.5 MB
總結
以上是生活随笔為你收集整理的LeetCode 1444. 切披萨的方案数(DP)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode 1110. 删点成林(
- 下一篇: LeetCode 245. 最短单词距离