zoukankan      html  css  js  c++  java
  • 【leetcode】1497. Check If Array Pairs Are Divisible by k

    题目如下:

    Given an array of integers arr of even length n and an integer k.

    We want to divide the array into exactly n / 2 pairs such that the sum of each pair is divisible by k.

    Return True If you can find a way to do that or False otherwise. 

    Example 1:

    Input: arr = [1,2,3,4,5,10,6,7,8,9], k = 5
    Output: true
    Explanation: Pairs are (1,9),(2,8),(3,7),(4,6) and (5,10).
    

    Example 2:

    Input: arr = [1,2,3,4,5,6], k = 7
    Output: true
    Explanation: Pairs are (1,6),(2,5) and(3,4).
    

    Example 3:

    Input: arr = [1,2,3,4,5,6], k = 10
    Output: false
    Explanation: You can try all possible pairs to see that there is no way to divide arr into 3 pairs each with sum divisible by 10.
    

    Example 4:

    Input: arr = [-10,10], k = 2
    Output: true
    

    Example 5:

    Input: arr = [-1,1,-2,2,-3,3,-4,4], k = 3
    Output: true

    Constraints:

    • arr.length == n
    • 1 <= n <= 10^5
    • n is even.
    • -10^9 <= arr[i] <= 10^9
    • 1 <= k <= 10^5

    解题思路:统计arr中每个元素除k后的余数出现的次数,接下来只要判断余数i出现的次数是否和余数k-i出现的次数相等即可。对于余数为0的情况,只要满足出现的次数为偶数即可。

    代码如下:

    class Solution(object):
        def canArrange(self, arr, k):
            """
            :type arr: List[int]
            :type k: int
            :rtype: bool
            """
            dic = {}
            for i in arr:
                remainder = i % k
                dic[remainder] =  dic.setdefault(remainder,0) + 1
            for key,val in dic.iteritems():
                if val == 0:continue
                elif key == 0 and val % 2 != 0:
                    return False
                elif key == 0 and val % 2 == 0:
                    continue
                elif k - key not in dic or dic[k-key] != val:
                    return False
            return True
  • 相关阅读:
    HDU 4763 Theme Section(KMP+枚举公共前后缀)
    HDU 3613 Best Reward(扩展KMP求前后缀回文串)
    HDU 3613 Best Reward(manacher求前、后缀回文串)
    扩展KMP模板
    Vue
    Vue
    css 文本换行 文本溢出隐藏用省略号表示剩下内容
    sublime 神一样的插件
    markdown
    css 居中布局
  • 原文地址:https://www.cnblogs.com/seyjs/p/13217870.html
Copyright © 2011-2022 走看看