[問題] LeetCode 1654
看板Prob_Solve (計算數學 Problem Solving)作者ucrxzero (RX古哥)時間4年前 (2020/11/16 18:25)推噓5(5推 0噓 17→)留言22則, 4人參與討論串1/1
Code:
https://tinyurl.com/yy3a5na4
問題描述:
一維座標,每次可以往右走a格,或者往左走b格,請問走到 x 最少需要幾步。
限制:
可以連續往右走無限次a
不能連續往左走兩次b
不能走到地雷座標,如果一定會碰到地雷或是走不到x,回傳-1。
解答:
1.BFS窮舉各種走法,一步一步慢慢窮舉。
2.接著記憶化走過的點。
visited[10][0] 代表10這個點用往前走的方式走過了
visited[10][1] 代表10這個點用往後走的方式走過了
問題:
為什麼記憶化搜尋的visited要二維的,不是只要一維就好了嗎?
我想說直接visited[10] = true/false,但結果這樣會過不了測資= =
我覺得有走過的點不管是來回走過都是一樣的意義呀代表你這個點的所有可能都走過了
何必再分來回的記憶化呢?在Discuss上等不到解釋,故上來發文感恩
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 43.248.19.192 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Prob_Solve/M.1605522326.A.5F9.html
推
11/16 21:49,
4年前
, 1F
11/16 21:49, 1F
可是這個答案已經有用一個flag去判斷你這次是不是往回走b了應該不需要在一個維度
maintain這個狀態
推
11/16 22:23,
4年前
, 2F
11/16 22:23, 2F
→
11/16 22:23,
4年前
, 3F
11/16 22:23, 3F
→
11/16 22:24,
4年前
, 4F
11/16 22:24, 4F
→
11/16 22:24,
4年前
, 5F
11/16 22:24, 5F
抱歉大大可是針對這個問題已經有用flag去判斷上一步是不是b,這樣還不夠嗎??
※ 編輯: ucrxzero (43.248.19.192 臺灣), 11/16/2020 22:49:08
推
11/17 04:44,
4年前
, 6F
11/17 04:44, 6F
→
11/17 04:44,
4年前
, 7F
11/17 04:44, 7F
→
11/17 11:49,
4年前
, 8F
11/17 11:49, 8F
→
11/17 12:39,
4年前
, 9F
11/17 12:39, 9F
→
11/17 12:40,
4年前
, 10F
11/17 12:40, 10F
推
11/19 18:09,
4年前
, 11F
11/19 18:09, 11F
→
11/19 18:09,
4年前
, 12F
11/19 18:09, 12F
→
11/19 18:10,
4年前
, 13F
11/19 18:10, 13F
→
11/19 18:12,
4年前
, 14F
11/19 18:12, 14F
感謝大大,我目前自己的想法是BFS在enqueue的時候,可能到達同一點的backward如果比forward快enqueue進來就不會enqueue forward的,故用一維就會消除那個點往後的可能性了。了解惹QQ,我腦筋太死以為forward一定比backward先enqueue...ORZ
※ 編輯: ucrxzero (43.248.19.192 臺灣), 11/19/2020 22:25:33
推
11/21 13:33,
4年前
, 15F
11/21 13:33, 15F
→
11/21 13:33,
4年前
, 16F
11/21 13:33, 16F
→
11/21 13:34,
4年前
, 17F
11/21 13:34, 17F
→
11/21 13:36,
4年前
, 18F
11/21 13:36, 18F
→
11/21 13:37,
4年前
, 19F
11/21 13:37, 19F
→
11/21 13:37,
4年前
, 20F
11/21 13:37, 20F
→
11/21 22:54,
4年前
, 21F
11/21 22:54, 21F
→
11/21 22:54,
4年前
, 22F
11/21 22:54, 22F
Prob_Solve 近期熱門文章
PTT數位生活區 即時熱門文章