From 717657849ae43a4c1acdea6e704e5c08e366ece6 Mon Sep 17 00:00:00 2001 From: kkunkka Date: Mon, 21 Apr 2025 15:20:05 +0800 Subject: [PATCH] kk --- .../java/com/dota/greedy/_2145/Solution.java | 16 ++++++++++++ .../dota/slidingWindow/_2401/Solution.java | 20 +++++++++++++++ .../com/dota/slidingWindow/_930/Solution.java | 25 +++++++++++++++++++ 3 files changed, 61 insertions(+) create mode 100644 src/main/java/com/dota/greedy/_2145/Solution.java create mode 100644 src/main/java/com/dota/slidingWindow/_2401/Solution.java create mode 100644 src/main/java/com/dota/slidingWindow/_930/Solution.java diff --git a/src/main/java/com/dota/greedy/_2145/Solution.java b/src/main/java/com/dota/greedy/_2145/Solution.java new file mode 100644 index 0000000..a588e06 --- /dev/null +++ b/src/main/java/com/dota/greedy/_2145/Solution.java @@ -0,0 +1,16 @@ +package com.dota.greedy._2145; + +class Solution { + public int numberOfArrays(int[] differences, int lower, int upper) { + long max = differences[0]; + long min = differences[0]; + long t = differences[0]; + for (int i = 1; i < differences.length; i++) { + t += differences[i]; + min = Math.min(min, t); + max = Math.max(max, t); + } + + return (int) (Math.max(-max + min + upper - lower + 1, 0)); + } +} \ No newline at end of file diff --git a/src/main/java/com/dota/slidingWindow/_2401/Solution.java b/src/main/java/com/dota/slidingWindow/_2401/Solution.java new file mode 100644 index 0000000..dfd9b1c --- /dev/null +++ b/src/main/java/com/dota/slidingWindow/_2401/Solution.java @@ -0,0 +1,20 @@ +package com.dota.slidingWindow._2401; + +class Solution { + public int longestNiceSubarray(int[] nums) { + int res = 1; + int l = 0; + int sum = 0; + int cnt = 0; + for (int i = 0; i < nums.length; i++) { + while((sum & nums[i])!=0) { + sum -= nums[l++]; + cnt--; + } + cnt++; + sum += nums[i]; + res = Math.max(res, cnt); + } + return res; + } +} \ No newline at end of file diff --git a/src/main/java/com/dota/slidingWindow/_930/Solution.java b/src/main/java/com/dota/slidingWindow/_930/Solution.java new file mode 100644 index 0000000..897b89e --- /dev/null +++ b/src/main/java/com/dota/slidingWindow/_930/Solution.java @@ -0,0 +1,25 @@ +package com.dota.slidingWindow._930; + +class Solution { + public int numSubarraysWithSum(int[] nums, int goal) { + int res = 0; + int n = nums.length; + int l = 0; + int ll = 0; + int sum1=0,sum2=0; + for (int i = 0; i < n; i++) { + sum1 += nums[i]; + while(l<=i&&sum1>goal) { + sum1 -= nums[l++]; + } + + sum2 += nums[i]; + while(ll<=i && sum2>=goal) { + sum2 -= nums[ll++]; + } + res += (ll - l); + } + + return res; + } +} \ No newline at end of file