diff options
Diffstat (limited to 'other/continuous_subarr_sum.rs')
-rw-r--r-- | other/continuous_subarr_sum.rs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/other/continuous_subarr_sum.rs b/other/continuous_subarr_sum.rs new file mode 100644 index 0000000..2e1567e --- /dev/null +++ b/other/continuous_subarr_sum.rs @@ -0,0 +1,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)); +} |