美文网首页
连续的子数组和

连续的子数组和

作者: phusFuNs | 来源:发表于2021-02-23 11:26 被阅读0次

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

链接:https://leetcode-cn.com/problems/continuous-subarray-sum

class Solution {

    private boolean isMatch(int x, int k) {
        if(k==0) {
            if(x==0) {
                return true;
            }
            else
            {
                return false;
            }
        }
        else
        {
            if((x%k)==0) {
                return true;
            }
            else
            {
                return false;
            }
        }
    }

    public boolean checkSubarraySum(int[] nums, int k) {

        int[] preSum = new int[nums.length];
        preSum[0] = nums[0];
        for(int i=1; i<nums.length; i++) {
            preSum[i] = preSum[i-1]+nums[i];
        }

        Map<Integer, Integer> mp = new HashMap<>();
        for(int i=0; i<preSum.length; i++) {
            if((i>=1)&&isMatch(preSum[i], k)) {
                return true;
            }
            if(k!=0) {
                if(mp.containsKey(preSum[i]%k)) {
                    if((i-mp.get(preSum[i]%k))>1) {
                        return true;
                    }
                }
                else
                {
                    mp.put(preSum[i]%k, i);
                }
            }
            else
            {
                if(mp.containsKey(preSum[i])) {
                    if((i-mp.get(preSum[i]))>1) {
                        return true;
                    }
                }
                else
                {
                    mp.put(preSum[i], i);
                }
            }
        }
        return false;
    }
}

相关文章

  • 【数组】--零子数组、最大连续子数组、数字连续子数组

    零子数组:对于长度为N的数组,求连续子数组和和最接近0的值和子数组最大连续子数组:给定一个数组A,求A的连续子数组...

  • 连续的子数组和

    题目: 给定一个包含非负数的数组和一个目标整数 k,编写一个函数来判断该数组是否含有连续的子数组,其大小至少为 2...

  • 连续的子数组和

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

  • 连续子数组组和

    classSolution{ publicbooleancheckSubarraySum(int[]nums,in...

  • 最大连续子数组和

    /* 最大连续子数组和 给定一个整数数组,数组里可能有正数、负数和零。数组中连续的一个或多个整数组成一个子数组,每...

  • 数组中连续子数组的最大乘积(LeetCode152. 乘积最大子

    题目 解析 在了解连续子数组最大乘积之前,请先参考数组中连续子数组的最大和(LeetCode53. 最大子序和)[...

  • 最大连续子数组和

    最大连续子数组和 题目描述: 输入一个整型数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每...

  • 连续最大和

    一个数组有 N 个元素,求连续子数组的最大和。 例如:[-1,2,1],和最大的连续子数组为[2,1],其和为 3...

  • 523. 连续的子数组和

    523. 连续的子数组和 问题 给定一个包含非负数的数组和一个目标整数 ,编写一个函数来判断该数组是否含有连续的子...

  • 算法训练2

    题目描述:一个数组有 N 个元素,求连续子数组的最大和。 例如:[-1,2,1],和最大的连续子数组为[2,1],...

网友评论

      本文标题:连续的子数组和

      本文链接:https://www.haomeiwen.com/subject/dcdrfltx.html