Skip to content

Commit 2a3d2d4

Browse files
committed
update
1 parent 5b5ffd6 commit 2a3d2d4

File tree

2 files changed

+61
-0
lines changed

2 files changed

+61
-0
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
// Runtime 27 ms Beats 56.93%
2+
// Memory 45.76 MB Beats 54.10%
3+
// Brute-force & sort.
4+
// T:O(m*n*k^2*log(k^2)), S:O(m*n)
5+
//
6+
class Solution {
7+
public int[][] minAbsDiff(int[][] grid, int k) {
8+
int row = grid.length, col = grid[0].length, row1 = row - k + 1, col1 = col - k + 1;
9+
int[][] ret = new int[row1][col1];
10+
if (k == 1) {
11+
return ret;
12+
}
13+
for (int i = 0; i < row1; i++) {
14+
for (int j = 0; j < col1; j++) {
15+
int ans = Integer.MAX_VALUE;
16+
List<Integer> tmp = new ArrayList<>();
17+
for (int r = i; r < i + k; r++) {
18+
for (int t = j; t < j + k; t++) {
19+
tmp.add(grid[r][t]);
20+
}
21+
}
22+
tmp.sort(Comparator.naturalOrder());
23+
for (int r = 0; r < tmp.size() - 1; r++) {
24+
if (!tmp.get(r).equals(tmp.get(r + 1))) {
25+
ans = Math.min(ans, Math.abs(tmp.get(r) - tmp.get(r + 1)));
26+
}
27+
}
28+
ret[i][j] = ans == Integer.MAX_VALUE ? 0 : ans;
29+
}
30+
}
31+
32+
return ret;
33+
}
34+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
// Runtime 105 ms Beats 100.00%
2+
// Memory 61.61 MB Beats 100.00%
3+
// Sort & greedy
4+
// T:O(n), S:O(nlogn)
5+
//
6+
class Solution {
7+
public int maxSumDistinctTriplet(int[] x, int[] y) {
8+
HashMap<Integer, Integer> record = new HashMap<>();
9+
int len = x.length;
10+
for (int i = 0; i < len; i++) {
11+
if (record.containsKey(x[i]) && record.get(x[i]) >= y[i]) {
12+
continue;
13+
}
14+
record.put(x[i], y[i]);
15+
}
16+
if (record.size() < 3) {
17+
return -1;
18+
}
19+
List<Integer> vals = new ArrayList<>();
20+
for (int key : record.keySet()) {
21+
vals.add(record.get(key));
22+
}
23+
vals.sort(Collections.reverseOrder());
24+
25+
return vals.get(0) + vals.get(1) + vals.get(2);
26+
}
27+
}

0 commit comments

Comments
 (0)