kk
This commit is contained in:
21
src/main/java/com/dota/arr/_2610/Solution.java
Normal file
21
src/main/java/com/dota/arr/_2610/Solution.java
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
package com.dota.arr._2610;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
class Solution {
|
||||||
|
public List<List<Integer>> findMatrix(int[] nums) {
|
||||||
|
var res = new ArrayList<List<Integer>>();
|
||||||
|
int n = nums.length;
|
||||||
|
var dp = new int[n + 1];
|
||||||
|
for (int num : nums) {
|
||||||
|
if(dp[num] == res.size()) {
|
||||||
|
res.add(new ArrayList<>());
|
||||||
|
}
|
||||||
|
|
||||||
|
res.get(dp[num]).add(num);
|
||||||
|
dp[num]++;
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
}
|
20
src/main/java/com/dota/slidingWindow/_1343/Solution.java
Normal file
20
src/main/java/com/dota/slidingWindow/_1343/Solution.java
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
package com.dota.slidingWindow._1343;
|
||||||
|
|
||||||
|
class Solution {
|
||||||
|
public int numOfSubarrays(int[] arr, int k, int threshold) {
|
||||||
|
int target = k * threshold;
|
||||||
|
int cnt = 0;
|
||||||
|
int sum = 0;
|
||||||
|
for (int i = 0; i < k; i++) {
|
||||||
|
sum += arr[i];
|
||||||
|
}
|
||||||
|
if (sum >= target) cnt++;
|
||||||
|
int l = 0, r = k;
|
||||||
|
while (r < arr.length) {
|
||||||
|
sum -= arr[l++];
|
||||||
|
sum += arr[r++];
|
||||||
|
if (sum >= target) cnt++;
|
||||||
|
}
|
||||||
|
return cnt;
|
||||||
|
}
|
||||||
|
}
|
26
src/main/java/com/dota/slidingWindow/_1456/Solution.java
Normal file
26
src/main/java/com/dota/slidingWindow/_1456/Solution.java
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
package com.dota.slidingWindow._1456;
|
||||||
|
|
||||||
|
class Solution {
|
||||||
|
private static final byte[] dp = new byte[128];
|
||||||
|
|
||||||
|
static {
|
||||||
|
dp['a'] = dp['e'] = dp['i'] = dp['o'] = dp['u'] = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int maxVowels(String s, int k) {
|
||||||
|
int cnt = 0;
|
||||||
|
int l = 0, r = 0;
|
||||||
|
var cs = s.toCharArray();
|
||||||
|
while (r < k) {
|
||||||
|
cnt += dp[cs[r++]];
|
||||||
|
}
|
||||||
|
int res = cnt;
|
||||||
|
while (r < s.length()) {
|
||||||
|
cnt += dp[cs[r++]];
|
||||||
|
cnt -= dp[cs[l++]];
|
||||||
|
res = Math.max(res, cnt);
|
||||||
|
}
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
}
|
22
src/main/java/com/dota/slidingWindow/_1462/Solution.java
Normal file
22
src/main/java/com/dota/slidingWindow/_1462/Solution.java
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
package com.dota.slidingWindow._1462;
|
||||||
|
|
||||||
|
class Solution {
|
||||||
|
public boolean hasAllCodes(String s, int k) {
|
||||||
|
if (s.length()<=k) return false;
|
||||||
|
int n = 1<<k;
|
||||||
|
boolean[] dp = new boolean[n];
|
||||||
|
int mask = n-1;
|
||||||
|
int sum = 0;
|
||||||
|
int num =0;
|
||||||
|
for (int i = 0; i < s.length(); i++) {
|
||||||
|
num = mask & (num<<1) + (s.charAt(i)-'0');
|
||||||
|
if(i>=k-1) {
|
||||||
|
if(!dp[num]) {
|
||||||
|
sum++;
|
||||||
|
}
|
||||||
|
dp[num] = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return sum == n;
|
||||||
|
}
|
||||||
|
}
|
29
src/main/java/com/dota/slidingWindow/_2090/Solution.java
Normal file
29
src/main/java/com/dota/slidingWindow/_2090/Solution.java
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
package com.dota.slidingWindow._2090;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
|
class Solution {
|
||||||
|
public int[] getAverages(int[] nums, int k) {
|
||||||
|
var res = new int[nums.length];
|
||||||
|
Arrays.fill(res, -1);
|
||||||
|
if (2 * k >= nums.length) {
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
long sum = 0;
|
||||||
|
for (int i = 0; i <= 2 * k; i++) {
|
||||||
|
sum += nums[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
int l = 0, r = 2 * k + 1;
|
||||||
|
res[k] = (int)(sum / (2 * k + 1));
|
||||||
|
int idx = k+1;
|
||||||
|
while (r < nums.length) {
|
||||||
|
sum += nums[r++];
|
||||||
|
sum -= nums[l++];
|
||||||
|
res[idx] =(int) (sum / (2 * k + 1));
|
||||||
|
idx++;
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
}
|
26
src/main/java/com/dota/slidingWindow/_2379/Solution.java
Normal file
26
src/main/java/com/dota/slidingWindow/_2379/Solution.java
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
package com.dota.slidingWindow._2379;
|
||||||
|
|
||||||
|
class Solution {
|
||||||
|
public int minimumRecolors(String blocks, int k) {
|
||||||
|
int res = 0;
|
||||||
|
for (int i = 0; i < k; i++) {
|
||||||
|
if (blocks.charAt(i) == 'W') {
|
||||||
|
res++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (res == 0) return 0;
|
||||||
|
|
||||||
|
int t = res;
|
||||||
|
int l = 0, r = k;
|
||||||
|
while (r < blocks.length()) {
|
||||||
|
if (blocks.charAt(r++) == 'W') {
|
||||||
|
t++;
|
||||||
|
}
|
||||||
|
if (blocks.charAt(l++) == 'W') {
|
||||||
|
t--;
|
||||||
|
}
|
||||||
|
res = Math.min(res, t);
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
}
|
41
src/main/java/com/dota/slidingWindow/_2461/Solution.java
Normal file
41
src/main/java/com/dota/slidingWindow/_2461/Solution.java
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
package com.dota.slidingWindow._2461;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
class Solution {
|
||||||
|
public long maximumSubarraySum(int[] nums, int k) {
|
||||||
|
long res = 0;
|
||||||
|
var map = new int[100001];
|
||||||
|
long sum = 0;
|
||||||
|
int cnt = 0;
|
||||||
|
for (int i = 0; i < k; i++) {
|
||||||
|
map[nums[i]]++;
|
||||||
|
sum += nums[i];
|
||||||
|
if (map[nums[i]] == 1) {
|
||||||
|
cnt++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (cnt == k) {
|
||||||
|
res = sum;
|
||||||
|
}
|
||||||
|
|
||||||
|
int l = 0, r = k;
|
||||||
|
while (r < nums.length) {
|
||||||
|
if (map[nums[l]] == 1) {
|
||||||
|
cnt--;
|
||||||
|
}
|
||||||
|
|
||||||
|
map[nums[l]]--;
|
||||||
|
map[nums[r]]++;
|
||||||
|
if (map[nums[r]] == 1) {
|
||||||
|
cnt++;
|
||||||
|
}
|
||||||
|
sum -= nums[l++];
|
||||||
|
sum += nums[r++];
|
||||||
|
if (cnt == k) {
|
||||||
|
res = Math.max(res, sum);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
}
|
36
src/main/java/com/dota/slidingWindow/_2841/Solution.java
Normal file
36
src/main/java/com/dota/slidingWindow/_2841/Solution.java
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
package com.dota.slidingWindow._2841;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
class Solution {
|
||||||
|
public long maxSum(List<Integer> nums, int m, int k) {
|
||||||
|
long res = 0;
|
||||||
|
var map = new HashMap<Integer, Integer>();
|
||||||
|
long sum = 0;
|
||||||
|
for (int i = 0; i < k; i++) {
|
||||||
|
map.put(nums.get(i), map.getOrDefault(nums.get(i), 0) + 1);
|
||||||
|
sum += nums.get(i);
|
||||||
|
}
|
||||||
|
if (map.size() >= m) {
|
||||||
|
res = sum;
|
||||||
|
}
|
||||||
|
|
||||||
|
int l = 0;
|
||||||
|
for (int i = k; i < nums.size(); i++) {
|
||||||
|
if (map.get(nums.get(l)) == 1) {
|
||||||
|
map.remove(nums.get(l));
|
||||||
|
} else {
|
||||||
|
map.put(nums.get(l), map.get(nums.get(l)) - 1);
|
||||||
|
}
|
||||||
|
map.put(nums.get(i), map.getOrDefault(nums.get(i), 0) + 1);
|
||||||
|
sum += nums.get(i);
|
||||||
|
sum -= nums.get(l++);
|
||||||
|
|
||||||
|
if (map.size() >= m) {
|
||||||
|
res = Math.max(res, sum);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user