diff --git a/src/main/java/com/dota/arr/_2711/Solution.java b/src/main/java/com/dota/arr/_2711/Solution.java new file mode 100644 index 0000000..031a54a --- /dev/null +++ b/src/main/java/com/dota/arr/_2711/Solution.java @@ -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(); + 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 deque = new ArrayDeque<>(); + deque.add(0); + for (int i = 1; i=k&&deque.peek() < i-k+1) { + deque.pollFirst(); + } + } + return dp[n - 1]; + } +} \ No newline at end of file diff --git a/src/main/java/com/dota/math/_2829/Solution.java b/src/main/java/com/dota/math/_2829/Solution.java new file mode 100644 index 0000000..9ba5024 --- /dev/null +++ b/src/main/java/com/dota/math/_2829/Solution.java @@ -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 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; + } +} \ No newline at end of file