Skip to content
On this page

1346. 检查整数及其两倍数是否存在

原题链接:LeetCode 1346. 检查整数及其两倍数是否存在

题目描述

给你一个整数数组 arr,请你检查是否存在两个整数 NM,满足 NM 的两倍(即,N = 2 * M)。

更正式地,检查是否存在两个下标 ij 满足:

  • i != j

  • 0 <= i, j < arr.length

  • arr[i]` == 2 * `arr[j]

示例 1:

 = 10

示例 2:

 = 14

示例 3:

  • 输入: arr = [3,1,7,11]
  • 输出: false
  • 解释: 在该情况下不存在 N 和 M 满足 N = 2 * M 。

提示:

  • 2 <= arr.length <= 500

  • -10^3 <= arr[i] <= 10^3

难度: Easy


题解代码

javascript
/**
 * @param {number[]} arr
 * @return {boolean}
 */
var checkIfExist = function(arr) {
  const hash = {}
  for (let i = 0; i < arr.length; i++) {
    if (arr[i] in hash) return true
    hash[arr[i] * 2] = 1
    if (!(arr[i] % 2)) {
      hash[arr[i] / 2] = 1
    }
  }
  return false
};

技术文档集合