zoukankan      html  css  js  c++  java
  • 【leetcode】1346. Check If N and Its Double Exist

    题目如下:

    Given an array arr of integers, check if there exists two integers N and M such that N is the double of M ( i.e. N = 2 * M).

    More formally check if there exists two indices i and j such that :

    • i != j
    • 0 <= i, j < arr.length
    • arr[i] == 2 * arr[j]

    Example 1:

    Input: arr = [10,2,5,3]
    Output: true
    Explanation: N = 10 is the double of M = 5,that is, 10 = 2 * 5.
    

    Example 2:

    Input: arr = [7,1,14,11]
    Output: true
    Explanation: N = 14 is the double of M = 7,that is, 14 = 2 * 7.
    

    Example 3:

    Input: arr = [3,1,7,11]
    Output: false
    Explanation: In this case does not exist N and M, such that N = 2 * M.

    Constraints:

    • 2 <= arr.length <= 500
    • -10^3 <= arr[i] <= 10^3

    解题思路:方法很多,自由发挥吧。

    代码如下:

    class Solution(object):
        def checkIfExist(self, arr):
            """
            :type arr: List[int]
            :rtype: bool
            """
            dic = {}
            for i in arr:
                if i*2 in dic or (i%2 == 0 and i/2 in dic):
                    return True
                dic[i] = 1
            return False
  • 相关阅读:
    tyvj1117 拯救ice-cream
    codevs3410 别墅房间
    codevs1099 字串变换
    codevs1226 倒水问题
    codevs2449 骑士精神
    codevs1225 八数码难题
    Wikioi 3776 生活大爆炸版石头剪子布
    codevs1197 Vigenère密码
    枚举 + exgcd
    C++ 排序引用的优化
  • 原文地址:https://www.cnblogs.com/seyjs/p/12287779.html
Copyright © 2011-2022 走看看