每日一题——LeetCode1346.检查整数及其两倍数是否存在

方法一 循环查找

用indexOf查找每个元素的两倍是否存在在数组中,找到了就直接return true,循环结束还没找到就return false

javascript 复制代码
var checkIfExist = function(arr) {
    for(let i=0;i<arr.length;i++){
        let index =arr.indexOf(arr[i]*2)
        if(index>=0 && index!=i){
            return true
        }   
    }
    return false
};

消耗时间和内存情况:

方法二 哈希表

javascript 复制代码
var checkIfExist = function(arr) {
    let map = new Map()
    arr.map((item,i)=>{
        map.set(item,i)
    })

   for(let i=0;i<arr.length;i++){
       if(map.has(arr[i]*2)&& map.get(arr[i]*2)!=i){
           return true
       }
   }
    return false
};

消耗时间和内存情况:

方法三 set交集

用set保存arr里每个元素的两倍,arr里有大于等于两个0就一定return true,小于等于1个0则看arr和set有没有重复元素且这个元素不能为0

javascript 复制代码
var checkIfExist = function(arr) {
    let set = new Set()
    for(num of arr){
        if(num==0 && set.has(num))  return true
        set.add(num*2)
    }
    for(num of arr){
        if(num!=0 && set.has(num))  return true
    }
    return false
};

消耗时间和内存情况:

相关推荐
June`8 小时前
warp shuffle指令
c++·人工智能·算法·cuda
geovindu8 小时前
go:Bit Operation Algorithm
开发语言·后端·算法·golang·位运算法
Hilaku9 小时前
当 AI 一天写完一周的代码,我们还剩什么优势?
前端·javascript·程序员
无责任此方_修行中9 小时前
换个版本号就能升级?可没那简单:pnpm 11 升级踩坑记
javascript·后端·npm
尘世中一位迷途小书童9 小时前
无人机航线里的云台角度怎么调?Cesium 做了个视锥 + 鹰眼联动
前端·javascript·数据可视化
张元清9 小时前
React useMeasure Hook:用 ResizeObserver 测量 DOM 元素 (2026)
javascript·react.js
A24207349309 小时前
Vue3 + TypeScript:后端数据在表格内渲染后进行增删改的完整实现步骤
前端·javascript·typescript
他们叫我 悦儿遥遥雨9 小时前
.NET 8 Web开发入门(六):Blazor 全栈开发——告别 JavaScript 焦虑
前端·javascript·.net
白白白小纯9 小时前
每日算法day3—回文链表,链表分割
c语言·数据结构·算法·leetcode
其美杰布-富贵-李9 小时前
Vue 3 模块导入教程:import、export 与文件组织
前端·javascript·vue.js