每日一题——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
};

消耗时间和内存情况:

相关推荐
_日拱一卒15 分钟前
LeetCode:240搜索二维矩阵Ⅱ
数据结构·线性代数·leetcode·矩阵
WolfGang00732115 分钟前
代码随想录算法训练营 Day33 | 动态规划 part06
算法·leetcode·动态规划
aini_lovee16 分钟前
半定规划(SDP)求解的 MATLAB 实现
算法
你的不安17 分钟前
GEE中getInfo()
javascript·云计算·gee
大阳光男孩20 分钟前
Uniapp+Vue3树形选择器
前端·javascript·uni-app
前端 贾公子26 分钟前
uniapp中@input修改input内容不生效 | 过滤赋值无效 | 连续非法字符不更新的问题
开发语言·前端·javascript
米粒127 分钟前
力扣算法刷题 Day 41(买卖股票)
算法·leetcode·职场和发展
幻风_huanfeng29 分钟前
人工智能之数学基础:内点法和外点法的区别和缺点
人工智能·算法·机器学习·内点法·外点法
533_30 分钟前
[vxe-table] 表头:点击出现输入框
android·java·javascript
写不来代码的草莓熊31 分钟前
el-date-picker ,自定义输入数字自动转换显示yyyy-mm-dd HH:mm:ss格式 【仅双日历 datetimerange专用】
开发语言·前端·javascript