kk
This commit is contained in:
39
src/main/java/com/dota/arr/_2711/Solution.java
Normal file
39
src/main/java/com/dota/arr/_2711/Solution.java
Normal file
@@ -0,0 +1,39 @@
|
||||
package com.dota.arr._2711;
|
||||
|
||||
import java.util.HashSet;
|
||||
|
||||
class Solution {
|
||||
public int[][] differenceOfDistinctValues(int[][] grid) {
|
||||
int n= grid.length, m = grid[0].length;
|
||||
var res = new int[n][m];
|
||||
var set = new HashSet<Integer>();
|
||||
for (int i = 0; i < n; i++) {
|
||||
for (int j = 0; j < m; j++) {
|
||||
int ii=i-1,jj=j-1;
|
||||
set.clear();
|
||||
int lcnt = 0;
|
||||
int rcnt = 0;
|
||||
while(ii>=0 && jj>=0) {
|
||||
if (!set.contains(grid[ii][jj])) {
|
||||
lcnt++;
|
||||
set.add(grid[ii][jj]);
|
||||
}
|
||||
ii--;
|
||||
jj--;
|
||||
}
|
||||
set.clear();
|
||||
ii = i+1;
|
||||
jj = j+1;
|
||||
while(ii<n&&jj<m) {
|
||||
if (!set.contains(grid[ii][jj])) {
|
||||
rcnt++;
|
||||
set.add(grid[ii][jj]);
|
||||
}
|
||||
ii++;jj++;
|
||||
}
|
||||
res[i][j] = Math.abs(lcnt-rcnt);
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
}
|
28
src/main/java/com/dota/dp/_1696/Solution.java
Normal file
28
src/main/java/com/dota/dp/_1696/Solution.java
Normal file
@@ -0,0 +1,28 @@
|
||||
package com.dota.dp._1696;
|
||||
|
||||
import java.util.ArrayDeque;
|
||||
import java.util.Deque;
|
||||
|
||||
class Solution {
|
||||
public int maxResult(int[] nums, int k) {
|
||||
int n = nums.length;
|
||||
var dp = new int[n];
|
||||
dp[0] = nums[0];
|
||||
Deque<Integer> deque = new ArrayDeque<>();
|
||||
deque.add(0);
|
||||
for (int i = 1; i<n; i++) {
|
||||
int t = nums[i] + dp[deque.peek()];
|
||||
dp[i] = t;
|
||||
while(!deque.isEmpty() && dp[deque.peekLast()] <= t) {
|
||||
deque.pollLast();
|
||||
}
|
||||
|
||||
deque.addLast(i);
|
||||
|
||||
if (i>=k&&deque.peek() < i-k+1) {
|
||||
deque.pollFirst();
|
||||
}
|
||||
}
|
||||
return dp[n - 1];
|
||||
}
|
||||
}
|
25
src/main/java/com/dota/math/_2829/Solution.java
Normal file
25
src/main/java/com/dota/math/_2829/Solution.java
Normal file
@@ -0,0 +1,25 @@
|
||||
package com.dota.math._2829;
|
||||
|
||||
class Solution {
|
||||
public int minimumSum(int n, int k) {
|
||||
int sum = 0;
|
||||
int cnt = 0;
|
||||
var dp = new boolean[50];
|
||||
int i = 1;
|
||||
while(cnt<n) {
|
||||
if (i<k) {
|
||||
if(!dp[i]) {
|
||||
sum += i;
|
||||
dp[k - i] = true;
|
||||
cnt++;
|
||||
}
|
||||
} else {
|
||||
sum += i;
|
||||
cnt++;
|
||||
}
|
||||
|
||||
i++;
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
}
|
26
src/main/java/com/dota/slidingWindow/_239/Solution.java
Normal file
26
src/main/java/com/dota/slidingWindow/_239/Solution.java
Normal file
@@ -0,0 +1,26 @@
|
||||
package com.dota.slidingWindow._239;
|
||||
|
||||
import java.util.ArrayDeque;
|
||||
import java.util.Deque;
|
||||
|
||||
class Solution {
|
||||
public int[] maxSlidingWindow(int[] nums, int k) {
|
||||
Deque<Integer> deque = new ArrayDeque<>();
|
||||
int[] res = new int[nums.length - k + 1];
|
||||
for (int i = 0; i < nums.length; i++) {
|
||||
while (!deque.isEmpty() && nums[i] > nums[deque.peekLast()]) {
|
||||
deque.pollLast();
|
||||
}
|
||||
|
||||
deque.offerLast(i);
|
||||
if (deque.peekFirst() < i - k + 1) {
|
||||
deque.pollFirst();
|
||||
}
|
||||
|
||||
if (i >= k - 1) {
|
||||
res[i - k + 1] = nums[deque.peek()];
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user