【LeetCode】1496. 判斷路徑是否相交(Java)
給你一個字串 path,其中 path[i] 的值可以是 ‘N’、‘S’、‘E’ 或者 ‘W’,分別表示向北、向南、向東、向西移動一個單位。
機器人從二維平面上的原點 (0, 0) 處開始出發,按 path 所指示的路徑行走。
如果路徑在任何位置上出現相交的情況,也就是走到之前已經走過的位置,請返回 True ;否則,返回 False 。
class Solution {
public boolean isPathCrossing(String path) {
Set<Integer> set = new HashSet<>();
int x = 0;
int y = 0;
//1 <= path.length <= 10^4,路線最長為10000,所以這裡x就只乘10000
set.add(x * 10000 + y);
for (int i = 0; i < path.length(); i++) {
switch (path.charAt(i)) {
case 'N': y++; break;
case 'S': y--; break;
case 'W': x++; break;
case 'E': x--; break;
}
if (set.contains(x * 10000 + y)) return true;
set.add(x * 10000 + y);
}
return false;
}
}
沒什麼思路,看了官方釋出的題解,使用自定義hash,然後儲存到set中,有了思路做起來就容易多了,評論區下有人說用String也可以,本來想用String來試試的,不過考慮到String拼接影響效率,最後還是用官方的題解來做。
相關文章
- canvas判斷點是否在路徑內Canvas斷點
- sh指令碼判斷路徑是否存在指令碼
- nginx判斷路徑是否含有某個引數做判斷Nginx
- 判斷元素是否在視口和元素相交
- shell 判斷檔案或路徑是否存在
- shell判斷系統路徑中是否存在空格
- Python科研武器庫 - 檔案/路徑操作 - 判斷路徑是否存在Python
- 判斷單連結串列是否存在環,判斷兩個連結串列是否相交問題詳解
- Python中怎麼判斷路徑是否為目錄?Python
- 判斷網路是否連線
- iOS判斷是否存在網路iOS
- java判斷字串是否為空Java字串
- java判斷物件是否為空Java物件
- Android 判斷網路是否正常Android
- java判斷mysql中資料庫是否存在JavaMySql資料庫
- 如何在Java中判斷是否為空Java
- Java 判斷字串中是否含有漢字.Java字串
- 連結串列面試題(十二)---判斷兩個都不帶環的連結串列是否相交面試題
- java裡如何判斷Email是否傳送成功?JavaAI
- 不靠腫瘤本身就能判斷是否得癌症?AI「另闢蹊徑」診斷肺癌!AI
- C# 正規表示式判斷是否是有效的檔案、資料夾路徑C#
- 網路遊戲公司如何判斷是否被攻擊?遊戲
- 一句話判斷網路是否聯通
- 判斷是否能連線網際網路
- java判斷輸入的字串是否為數字Java字串
- java判斷檔案是否存在並建立檔案Java
- Java判斷一個整數是否為奇數Java
- 判斷字串是否為空字串
- 判斷URL字串是否合法字串
- 41:判斷元素是否存在
- 判斷oracle是否啟動Oracle
- Javascript 判斷物件是否相等JavaScript物件
- 判斷SD卡是否可用SD卡
- 判斷字串是否唯一字串
- java字串、異常小練習--判斷qq是否合法Java字串
- Java判斷欄位是否為空,為空賦值 ?Java賦值
- 判斷一個物件是否為空物件,判斷一個物件中是否有空值物件
- 關於判斷兩個矩陣相交的一點想法矩陣