zoukankan      html  css  js  c++  java
  • Java实现 LeetCode 523 连续的子数组和(ง •_•)ง

    523. 连续的子数组和

    给定一个包含非负数的数组和一个目标整数 k,编写一个函数来判断该数组是否含有连续的子数组,其大小至少为 2,总和为 k 的倍数,即总和为 n*k,其中 n 也是一个整数。

    示例 1:

    输入: [23,2,4,6,7], k = 6
    输出: True
    解释: [2,4] 是一个大小为 2 的子数组,并且和为 6。
    示例 2:

    输入: [23,2,6,4,7], k = 6
    输出: True
    解释: [23,2,6,4,7]是大小为 5 的子数组,并且和为 42。
    说明:

    数组的长度不会超过10,000。
    你可以认为所有数字总和在 32 位有符号整数范围内。

    PS:
    当求是他的倍数的时候根据余数求
    测试用例0 0是个烦人的点

    class Solution {
           public boolean checkSubarraySum(int[] nums, int k) {
            
            
            if(nums.length < 2) return false;
            for(int i = 0; i < nums.length-1; ++i) 
                if(nums[i] == 0 && nums[i+1] == 0) return true;
            if(k == 0) return false;
            if(k < 0) k = -k;
            
            Map<Integer, Integer> map = new HashMap<>();
            map.put(0, -1);
            int sum = 0;
            for(int i = 0; i < nums.length; ++i) {
                sum += nums[i];
                int mod = sum % k;
                if(map.containsKey(mod)) {
                    if(i-map.get(mod) > 1)
                        return true;
                }
                else // 不存在再更新
                    map.put(mod, i);
            }
            return false;
        }
    }
    
  • 相关阅读:
    【k8s】Volume-persistentVolumeReclaimPolicy
    【k8s】Volume-pv
    【k8s】Secret-生成环境变量
    【k8s】Volume-nfs
    【k8s】Volume-hostPath
    【k8s】Volume-emptyDir
    【k8s】Volume-downwardAPI
    【k8s】Volume-Secret
    【k8s】Volume-ConfigMap-file
    SQL SERVER 列转行
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13074974.html
Copyright © 2011-2022 走看看