kk
This commit is contained in:
21
src/main/java/com/dota/slidingWindow/_1695/Solution.java
Normal file
21
src/main/java/com/dota/slidingWindow/_1695/Solution.java
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
package com.dota.slidingWindow._1695;
|
||||||
|
|
||||||
|
class Solution {
|
||||||
|
public int maximumUniqueSubarray(int[] nums) {
|
||||||
|
var dp = new int[10001];
|
||||||
|
var res = 0;
|
||||||
|
int sum = 0;
|
||||||
|
int l = 0;
|
||||||
|
for (int num : nums) {
|
||||||
|
dp[num]++;
|
||||||
|
sum += num;
|
||||||
|
while (dp[num] == 2) {
|
||||||
|
sum -= nums[l];
|
||||||
|
dp[nums[l]]--;
|
||||||
|
l++;
|
||||||
|
}
|
||||||
|
res = Math.max(res, sum);
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
}
|
38
src/main/java/com/dota/slidingWindow/_2904/Solution.java
Normal file
38
src/main/java/com/dota/slidingWindow/_2904/Solution.java
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
package com.dota.slidingWindow._2904;
|
||||||
|
|
||||||
|
class Solution {
|
||||||
|
public String shortestBeautifulSubstring(String s, int k) {
|
||||||
|
int l = 0;
|
||||||
|
int cnt = 0;
|
||||||
|
String res = "";
|
||||||
|
for (int i = 0; i < s.length(); i++) {
|
||||||
|
if (s.charAt(i) == '0') {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
cnt++;
|
||||||
|
if (cnt==k) {
|
||||||
|
while(s.charAt(l)=='0') {
|
||||||
|
l++;
|
||||||
|
}
|
||||||
|
if (res.isEmpty()) {
|
||||||
|
res = s.substring(l, i+1);
|
||||||
|
} else {
|
||||||
|
if (i+1-l < res.length()) {
|
||||||
|
res = s.substring(l, i+1);
|
||||||
|
} else if (i+1-l==res.length() && s.substring(l,i+1).compareTo(res)<0) {
|
||||||
|
res = s.substring(l,i+1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
while(cnt==k||(l<s.length()&& s.charAt(l)=='0')) {
|
||||||
|
if (s.charAt(l)=='1') {
|
||||||
|
cnt--;
|
||||||
|
}
|
||||||
|
l++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
}
|
20
src/main/java/com/dota/slidingWindow/_2958/Solution.java
Normal file
20
src/main/java/com/dota/slidingWindow/_2958/Solution.java
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
package com.dota.slidingWindow._2958;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
class Solution {
|
||||||
|
public int maxSubarrayLength(int[] nums, int k) {
|
||||||
|
int res=0;
|
||||||
|
int l = 0;
|
||||||
|
var dp = new HashMap<Integer, Integer>();
|
||||||
|
for (int i = 0; i < nums.length; i++) {
|
||||||
|
dp.put(nums[i], dp.getOrDefault(nums[i], 0) + 1);
|
||||||
|
while (dp.get(nums[i]) > k) {
|
||||||
|
dp.put(nums[l], dp.get(nums[l]) - 1);
|
||||||
|
l++;
|
||||||
|
}
|
||||||
|
res = Math.max(res, i - l + 1);
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
}
|
40
src/main/java/com/dota/slidingWindow/_904/Solution.java
Normal file
40
src/main/java/com/dota/slidingWindow/_904/Solution.java
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
package com.dota.slidingWindow._904;
|
||||||
|
|
||||||
|
class Solution {
|
||||||
|
public int totalFruit(int[] fruits) {
|
||||||
|
int res = 0;
|
||||||
|
int n = fruits.length;
|
||||||
|
var dp = new int[n];
|
||||||
|
int cnt = 0;
|
||||||
|
int l = 0;
|
||||||
|
for (int i = 0; i < n; i++) {
|
||||||
|
var idx = fruits[i];
|
||||||
|
dp[idx]++;
|
||||||
|
if (dp[idx] == 1) {
|
||||||
|
cnt++;
|
||||||
|
}
|
||||||
|
while (cnt > 2) {
|
||||||
|
idx = fruits[l++];
|
||||||
|
dp[idx]--;
|
||||||
|
if (dp[idx] == 0) {
|
||||||
|
cnt--;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
res = Math.max(res, i - l + 1);
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class Saolution {
|
||||||
|
public int minimumOperations(int[] nums) {
|
||||||
|
var dp = new int[101];
|
||||||
|
for (int i = nums.length - 1; i >= 0; i--) {
|
||||||
|
dp[nums[i]]++;
|
||||||
|
if (dp[nums[i]] == 2) {
|
||||||
|
return (i+3)/3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user