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