付費限定

一題多解 能打開所有房間的門嗎? Keys and Rooms_Leetcode #841 精選75題

更新於 發佈於 閱讀時間約 7 分鐘

題目敘述

題目會給我們一個房間陣列rooms,每個房間裡面擁有數量不等,可以打開其他房間的鑰匙。

每一道房間門預設都是鎖住的,只有0號房間的門一開始是打開的

請問,從0號房間開始拿鑰匙,最終能不能打開所有房間的門?


題目的原文敘述


測試範例

Example 1:

Input: rooms = [[1],[2],[3],[]]
Output: true
Explanation:
We visit room 0 and pick up key 1.
We then visit room 1 and pick up key 2.
We then visit room 2 and pick up key 3.
We then visit room 3.
Since we were able to visit every room, we return true.

0號們一開始就是打開的。​
0號房間可以拿到1號房間的鑰匙。
1號房間可以拿到2號房間的鑰匙。​
2號房間可以拿到3號房間的鑰匙。

可以打開所有房間的門。​

Example 2:

Input: rooms = [[1,3],[3,0,1],[2],[0]]
Output: false
Explanation: We can not enter room number 2 since the only key that unlocks it is in that room.
不管怎麼走,都拿不到2號房間的鑰匙。
無解,返回False,​

約束條件

Constraints:

  • n == rooms.length

房間的總數目定義為n

  • 2 <= n <= 1000

房間的總數目n 介於 2 ~ 1000 之間。

  • 0 <= rooms[i].length <= 1000

每個房間內部可能有0~1000把鑰匙。

代表有些房間進去之後,拿不到別的鑰匙。

  • 1 <= sum(rooms[i].length) <= 3000

鑰匙的總數量介於1~3000把之間。

  • 0 <= rooms[i][j] < n

每把鑰匙都可以打開對應的門,不會有惡作劇無用的鑰匙。

  • All the values of rooms[i] are unique.

單獨每一間房間,內部擁有的鑰匙不會重複。


建立解題模型 與 演算法

以行動支持創作者!付費即可解鎖
本篇內容共 2916 字、1 則留言,僅發佈於Leetcode精選75題 解析+統整你目前無法檢視以下內容,可能因為尚未登入,或沒有該房間的查看權限。
avatar-img
91會員
425內容數
由有業界實戰經驗的演算法工程師, 手把手教你建立解題的框架, 一步步寫出高效、清晰易懂的解題答案。 著重在讓讀者啟發思考、理解演算法,熟悉常見的演算法模板。 深入淺出地介紹題目背後所使用的演算法意義,融會貫通演算法與資料結構的應用。 在幾個經典的題目融入一道題目的多種解法,或者同一招解不同的題目,擴展廣度,並加深印象。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
題目敘述 題目會給我們一顆二元樹的根結點,請我們列出每一層最右邊的節點值,以陣列的形式返回答案。 題目的原文敘述 測試範例 Example 1: Input: root = [1,2,3,null,5,null,4] Output: [1,3,4] 每一層最右邊的節點值分別是1, 3,
題目敘述 題目會給定我們一個字串s,和一組字庫wordDict。 問我們能不能透過字串串接的方式,從字庫裡面的字拼成原本的字串s? 可以的話,返回True。 無解的話,返回False。 註: 題目還允許重複使用字庫裡面的字去串接。
題目敘述 題目會給定一個指定高度和寬的方格版,還有一顆小球的起始位置,和最大移動步數。 小球每一步可以選擇向上、下、左、右移動一格,請問小球能走到方格版界外的路徑方法數總共有幾種? 方法數可能很大,題目要求,最後回傳答案時,先對10^9+7做除法取餘數再回傳。 題目的原文敘述 約束條件
題目敘述 題目給定我們一顆二元樹的根節點,要求我們計算出從根節點到葉子節點的偽回文路徑路徑有幾條? 偽回文路徑路徑 的定義: 路徑經過重新排列之後,可以形成回文Palindrome,也就是頭尾鏡像對稱。 ​ 例如: 1 -> 3 -> 3 重新排列之後,可以形成 3 -> 1 -> 3
題目敘述 題目會給定一個字串陣列arr最為輸入,我們可以任意選擇一組不包含重複字元的陣列子序列,將字串進行串接,成為字串s,請問字串s的最大長度是多少? 例如: arr=["dog","cow","cat"] 我們可以選擇"dog", "cat"進行串接,得到的字串s="dogcat",s的
題目敘述 題目會給定我們一棵二元數Binary Tree的根結點。 問我們任意祖先節點和晚輩節點之間,最大的差值的絕對值是多少? 題目的原文敘述 測試範例 Example 1: Input: root = [8,3,10,1,6,null,14,null,null,4,7,13] Ou
題目敘述 題目會給我們一顆二元樹的根結點,請我們列出每一層最右邊的節點值,以陣列的形式返回答案。 題目的原文敘述 測試範例 Example 1: Input: root = [1,2,3,null,5,null,4] Output: [1,3,4] 每一層最右邊的節點值分別是1, 3,
題目敘述 題目會給定我們一個字串s,和一組字庫wordDict。 問我們能不能透過字串串接的方式,從字庫裡面的字拼成原本的字串s? 可以的話,返回True。 無解的話,返回False。 註: 題目還允許重複使用字庫裡面的字去串接。
題目敘述 題目會給定一個指定高度和寬的方格版,還有一顆小球的起始位置,和最大移動步數。 小球每一步可以選擇向上、下、左、右移動一格,請問小球能走到方格版界外的路徑方法數總共有幾種? 方法數可能很大,題目要求,最後回傳答案時,先對10^9+7做除法取餘數再回傳。 題目的原文敘述 約束條件
題目敘述 題目給定我們一顆二元樹的根節點,要求我們計算出從根節點到葉子節點的偽回文路徑路徑有幾條? 偽回文路徑路徑 的定義: 路徑經過重新排列之後,可以形成回文Palindrome,也就是頭尾鏡像對稱。 ​ 例如: 1 -> 3 -> 3 重新排列之後,可以形成 3 -> 1 -> 3
題目敘述 題目會給定一個字串陣列arr最為輸入,我們可以任意選擇一組不包含重複字元的陣列子序列,將字串進行串接,成為字串s,請問字串s的最大長度是多少? 例如: arr=["dog","cow","cat"] 我們可以選擇"dog", "cat"進行串接,得到的字串s="dogcat",s的
題目敘述 題目會給定我們一棵二元數Binary Tree的根結點。 問我們任意祖先節點和晚輩節點之間,最大的差值的絕對值是多少? 題目的原文敘述 測試範例 Example 1: Input: root = [8,3,10,1,6,null,14,null,null,4,7,13] Ou
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
宇宙關了這門,開了那窗。 快!去看看新的窗的風景,別傻站在關上的門前啦。
生活實驗 八二四       開冷氣是關上房門最好的理由, 不用解釋為何需要自己的空間。
過客家裡的大門鑰匙是伸縮式的,這種鑰匙很常見的,唯一的缺點就是常摔的話鑰匙會從中間斷掉,很特別的我家這組鎖的鑰匙沒有替代的(就一支長長的,沒有申縮功能,打一把才210元)° 記得有次我一共打了兩把,而且還不是每家都有,好不容易找到有的店家,兩把竟然要價1000元,著實嚇壞了,那時薯國的薯友還留
Thumbnail
題目敘述 給定一個正整數n,請找出最少用幾個完全平方數,可以讓他們的總和為n? 例如 n=12,最少用3個完全平方數就可讓他們的總和為n,因為12 = 4 + 4 + 4 題目的原文敘述 測試範例 Example 1: Input: n = 12 Output: 3 Explanat
Thumbnail
題目敘述 題目會給我們一棵二元樹的根結點,要求我們找出哪一層擁有最大的水平元素和(Level-sum)? 題目的原文敘述 測試範例 Example 1: Input: root = [1,7,0,7,-8,null,null] Output: 2 Explanation: Level
Thumbnail
題目敘述 題目會給定一個二元樹的樹根結點Root node,要求我們計算這顆二元樹的最大深度是多少? 二元樹的深度的定義: 從根結點到葉子結點的最大路徑長度。 題目的原文敘述 約束條件 Constraints: The number of nodes in the tree is
Thumbnail
題目敘述 題目會給我們一個輸入陣列nums,每個元素值代表那個格子點可以左右位移的固定長度。 例如,假設 nums[i] = 3,那麼下一步可以移動到nums[i-3] 或 nums[i+3]這兩個格子點。 題目​會給定一個起始點start索引位置,請問我們能不能走到內部數值為0的格子點?
Thumbnail
題目敘述 題目會給我們一個房間陣列rooms,每個房間裡面擁有數量不等,可以打開其他房間的鑰匙。 每一道房間門預設都是鎖住的,只有0號房間的門一開始是打開的。 請問,從0號房間開始拿鑰匙,最終能不能打開所有房間的門? 題目的原文敘述 測試範例
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
宇宙關了這門,開了那窗。 快!去看看新的窗的風景,別傻站在關上的門前啦。
生活實驗 八二四       開冷氣是關上房門最好的理由, 不用解釋為何需要自己的空間。
過客家裡的大門鑰匙是伸縮式的,這種鑰匙很常見的,唯一的缺點就是常摔的話鑰匙會從中間斷掉,很特別的我家這組鎖的鑰匙沒有替代的(就一支長長的,沒有申縮功能,打一把才210元)° 記得有次我一共打了兩把,而且還不是每家都有,好不容易找到有的店家,兩把竟然要價1000元,著實嚇壞了,那時薯國的薯友還留
Thumbnail
題目敘述 給定一個正整數n,請找出最少用幾個完全平方數,可以讓他們的總和為n? 例如 n=12,最少用3個完全平方數就可讓他們的總和為n,因為12 = 4 + 4 + 4 題目的原文敘述 測試範例 Example 1: Input: n = 12 Output: 3 Explanat
Thumbnail
題目敘述 題目會給我們一棵二元樹的根結點,要求我們找出哪一層擁有最大的水平元素和(Level-sum)? 題目的原文敘述 測試範例 Example 1: Input: root = [1,7,0,7,-8,null,null] Output: 2 Explanation: Level
Thumbnail
題目敘述 題目會給定一個二元樹的樹根結點Root node,要求我們計算這顆二元樹的最大深度是多少? 二元樹的深度的定義: 從根結點到葉子結點的最大路徑長度。 題目的原文敘述 約束條件 Constraints: The number of nodes in the tree is
Thumbnail
題目敘述 題目會給我們一個輸入陣列nums,每個元素值代表那個格子點可以左右位移的固定長度。 例如,假設 nums[i] = 3,那麼下一步可以移動到nums[i-3] 或 nums[i+3]這兩個格子點。 題目​會給定一個起始點start索引位置,請問我們能不能走到內部數值為0的格子點?
Thumbnail
題目敘述 題目會給我們一個房間陣列rooms,每個房間裡面擁有數量不等,可以打開其他房間的鑰匙。 每一道房間門預設都是鎖住的,只有0號房間的門一開始是打開的。 請問,從0號房間開始拿鑰匙,最終能不能打開所有房間的門? 題目的原文敘述 測試範例