aboutsummaryrefslogtreecommitdiff
path: root/continuous_subarr_sum.rs
blob: 2e1567ed7ecb1c52396e82fc6cac429825a926f7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
use std::collections::HashSet;
struct Solution;

impl Solution {
    pub fn check_subarray_sum(nums: Vec<i32>, k: i32) -> bool {
        let mut mod_k_val = HashSet::<i32>::from([0]);
        let mut prefix_sum = nums[0] % k;
        for val in nums.into_iter().skip(1) {
            let tba = prefix_sum;
            prefix_sum = (prefix_sum + val) % k;
            if mod_k_val.contains(&prefix_sum) {
                return true;
            }
            mod_k_val.insert(tba);
        }
        false
    }
}

fn main() {
    let nums = vec![18,84,4,38,11,248];
    let k = 6;
    print!("{}", Solution::check_subarray_sum(nums, k));
}