每日一题——LeetCode1496.判断路径是否相交

方法一 Set集合

用x=0,y=0来模拟点的坐标移动,N就是y+1,S就是y-1,E就是x+1,W就是x-1,没有重复出现的坐标就代表没有相交

javascript 复制代码
var isPathCrossing = function(path) {
    let set = new Set()
    let x=0,y=0
    set.add(x+','+y)
    for(let char of path){
        switch(char){
            case "N":y++;break;
            case "S":y--;break;   
            case "W":x--;break;   
            case "E":x++;break;
        }
        if(set.has(x+','+y)) return true
        else set.add(x+','+y)
    }
    return false
};

消耗时间和内存情况:

相关推荐
cynicme3 小时前
力扣3318——计算子数组的 x-sum I(偷懒版)
java·算法·leetcode
漂流瓶jz5 小时前
Webpack中各种devtool配置的含义与SourceMap生成逻辑
前端·javascript·webpack
这是个栗子5 小时前
【问题解决】用pnpm创建的 Vue3项目找不到 .eslintrc.js文件 及 后续的eslint配置的解决办法
javascript·vue.js·pnpm·eslint
im_AMBER6 小时前
算法笔记 09
c语言·数据结构·c++·笔记·学习·算法·排序算法
凯芸呢6 小时前
Java中的数组(续)
java·开发语言·数据结构·算法·青少年编程·排序算法·idea
寂静山林6 小时前
UVa 1030 Image Is Everything
算法
AI柠檬6 小时前
几种排序算法的实现和性能比较
数据结构·算法·c#·排序算法
zy happy6 小时前
RuoyiApp 在vuex,state存储nickname vue2
前端·javascript·小程序·uni-app·vue·ruoyi
weixin_429630267 小时前
第6章 支持向量机
算法·机器学习·支持向量机
SweetCode7 小时前
C++ 实现大数加法
开发语言·c++·算法