GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — 跳跃游戏 III-1306 · Issue #102 · sl1673495/leetcode-javascript Open Labels Description这里有一个非负整数数组 arr,你最开始位于该数组的起始下标 start 处。当你位于下标 i 处时,你可以跳到 i + arr[i] 或者 i - arr[i]。 请你判断自己是否能够跳到对应元素值为 0 的 任一 下标处。 注意,不管是什么情况下,你都无法跳到数组之外。 来源:力扣(LeetCode) 思路利用 BFS 的思路,维护一个队列
如果这个过程中发现了某一格是 0,那么就成功,如果整个循环结束了都没发现,那么就失败。 /** * @param {number[]} arr * @param {number} start * @return {boolean} */ let canReach = function (arr, start) { let n = arr.length; let visited = []; let queue = [start]; while (queue.length) { let index = queue.pop(); let val = arr[index]; if (val === 0) { return true; } let left = index - val; let right = index + val; if (left >= 0 && !visited[left]) { queue.push(left); } if (right < n && !visited[right]) { queue.push(right); } visited[index] = true; } return false; }; ActivityMetadataMetadataAssigneesLabelsProjectsMilestoneRelationshipsDevelopmentIssue actions |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |