LeetCode Biweekly Contest 173 Discussion and Solution
Priyanshu Chaurasiya
27 days ago
Priyanshu Chaurasiya
27 days ago

Join the conversation by signing in below!
| Problem | Difficulty | Points | Status |
|---|---|---|---|
| 1 | Easy | 3 | Solved |
| 2 | Medium | 4 | Solved |
| 3 | Medium | 5 | Unsolved |
| 4 | Hard | 6 | Unsolved |
class Solution {
public String reversePrefix(String s, int k) {
StringBuilder sb = new StringBuilder();
for(int i = k - 1; i >= 0; i--){
char ch = s.charAt(i);
sb.append(ch);
}
for(int i = k; i < s.length(); i++){
char ch = s.charAt(i);
sb.append(ch);
}
return sb.toString();
}
}class Solution {
public int minLength(int[] nums, int k) {
int n = nums.length;
Map<Integer, Integer> map = new HashMap<>();
int ans = Integer.MAX_VALUE;
int sum = 0;
int j = 0;
for(int i = 0; i < n; i++){
int freq = map.getOrDefault(nums[i], 0);
if(freq == 0){
sum += nums[i];
}
map.put(nums[i], freq + 1);
while(j <= i && sum >= k){
ans = Math.min(ans, i - j + 1);
int prevFreq = map.get(nums[j]);
if(prevFreq == 1){
sum -= nums[j];
}
map.put(nums[j], prevFreq - 1);
j++;
}
}
return ans == Integer.MAX_VALUE ? -1 : ans;
}
}No comments yet, Start the conversation!