Re: [閒聊] 每日LeetCode

看板Marginalman作者 (みけねこ的鼻屎)時間1年前 (2023/03/21 00:24), 編輯推噓1(100)
留言1則, 1人參與, 1年前最新討論串267/719 (看更多)
605. Can Place Flowers 給你一個只有0和1的矩陣表示土地,1表示該位置有種花,再給你一個數字n表示要種的 花有幾個,如果要種一個花他的旁邊不能有相鄰的花,求出給定的土地是否可以種n個花 Example 1: Input: flowerbed = [1,0,0,0,1], n = 1 Output: true Example 2: Input: flowerbed = [1,0,0,0,1], n = 2 Output: false 思路: 1.歸納出所有可能的狀態: 如果當前位置有花就往前兩格,因為下一格必不能種 如果前一格有花就往前一格,因為當前格沒有花所以對下一格來說是合法的 如果下一格有花就往前三格,因為下下格也不能種花 都不是的話表示前後都沒有種花,要種的花數量減少一 2.最後判斷還有沒有花剩下沒種的即可。 Java Code: ---------------------------------------------------------------------------- class Solution { public boolean canPlaceFlowers(int[] flowerbed, int n) { for (int i = 0; i < flowerbed.length && n > 0;) { if (flowerbed[i] == 1) { i += 2; } else if (i - 1 >= 0 && flowerbed[i - 1] == 1) { i++; } else if (i + 1 < flowerbed.length && flowerbed[i + 1] == 1) { i += 3; } else { i += 2; n--; } } return n <= 0; } } ---------------------------------------------------------------------------- -- https://i.imgur.com/PIoxddO.jpg
-- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.100.75.86 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1679329469.A.85D.html

03/21 00:38, 1年前 , 1F
大師
03/21 00:38, 1F
文章代碼(AID): #1a68YzXT (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1a68YzXT (Marginalman)