zoukankan      html  css  js  c++  java
  • [leetcode]523. Continuous Subarray Sum连续子数组和(为K的倍数)

    Given a list of non-negative numbers and a target integer k, write a function to check if the array has a continuous subarray of size at least 2 that sums up to the multiple of k, that is, sums up to n*k where n is also an integer.

    Example 1:

    Input: [23, 2, 4, 6, 7],  k=6
    Output: True
    Explanation: Because [2, 4] is a continuous subarray of size 2 and sums up to 6.
    

    Example 2:

    Input: [23, 2, 6, 4, 7],  k=6
    Output: True
    Explanation: Because [23, 2, 6, 4, 7] is an continuous subarray of size 5 and sums up to 42.
    

    Note:

    1. The length of the array won't exceed 10,000.
    2. You may assume the sum of all the numbers is in the range of a signed 32-bit integer.

    题目

    给定数组和一个数K,求是否存在子数组和为K的倍数。

    思路

    代码

     1 class Solution {
     2     public boolean checkSubarraySum(int[] nums, int k) {
     3         HashMap<Integer, Integer> map = new HashMap<>();
     4         //为何 map.put(0, -1) 呢? 如果在第2位找到了mod == 0的数,那就 1 -(-1)>1,return true。
     5         map.put(0, -1);
     6         int sum = 0;
     7         for (int i = 0; i < nums.length; i++) {
     8             // running sum 
     9             sum += nums[i];
    10             if (k != 0) {
    11                 sum %= k;
    12             }
    13             // find sum % k is in the HashMap
    14             if (map.containsKey(sum)) {
    15                 // subarray length at least two 
    16                 if (i - map.get(sum) > 1) {
    17                     return true;
    18                 }
    19             }
    20             else {
    21                 // key: runnng sum -- value: index
    22                 map.put(sum, i);
    23             }
    24         }
    25         return false;
    26     }
    27 }
  • 相关阅读:
    实现servlet的三种方式
    java中的运算符与表达式
    封装链接数据库的工具
    java 概述
    HTTP请求方式中get和post的区别
    asp.net获取当前网址url
    利用IP安全策略关闭危险端口
    IE6 css fixed
    存储过程中使用事务详解
    windows 2003内存性能分析工具
  • 原文地址:https://www.cnblogs.com/liuliu5151/p/9811335.html
Copyright © 2011-2022 走看看