lcpBi99

最小和分割

方法一:HashMap

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Solution {
public int splitNum(int num) {
String s = String.valueOf(num);
int n = s.length();
int[] cnt = new int[10];
for (int i = 0; i < s.length(); ++i)
cnt[s.charAt(i) - '0']++;
StringBuilder sb1 = new StringBuilder(), sb2 = new StringBuilder();
boolean flag = false;
for (int i = 0; i < 10; ++i) {
while (cnt[i]-- > 0) {
if (flag)
sb2.append(i);
else
sb1.append(i);
flag = !flag;
}
}
System.out.println();
return Integer.parseInt(sb1.toString()) + Integer.parseInt(sb2.toString());
}
}

统计染色格子数

方法一:等差数列

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class Solution {
static long[] sum = new long[100002];

static {
sum[1] = 1;
int diff = 4;
for (int i = 2; i < sum.length; ++i) {
sum[i] = sum[i - 1] + diff;
diff += 4;
}

}
public long coloredCells(int n) {
return sum[n];
}
}

统计将重叠区间合并成组的方案数

方法一:贪心 + 快速幂

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
static int MOD = (int) 1e9 + 7;

public int countWays(int[][] ranges) {
Arrays.sort(ranges, (o1,o2)->o1[0] - o2[0]);
int res = 2, r = ranges[0][1];
for (int[] range : ranges) {
if (range[0] > r)
res = res * 2 % MOD;
r = Math.max(r, range[1]);
}
return res;
}
}

统计可能的树根数目

方法一:

1


lcpBi99
https://leopol1d.github.io/2023/08/23/lcpBi99/
作者
Leopold
发布于
2023年8月23日
许可协议