409. 最长回文串
Map<Character, Integer> map = new HashMap<>();
char[] str = s.toCharArray();
for(int i = 0; i < s.length(); i++) {
map.put(str[i], map.getOrDefault(str[i], 0) + 1);
}
int ans = 0;
int cur = 0;
boolean flag = false;
for(Integer i : map.values()) {直接来values
if(i % 2 == 0) {偶的直接加
ans += i;
}else {奇的变成偶的加上
flag = true;
ans += (i - 1);
}
}
if(flag) return ans + 1;可以有一个奇的
return ans;
799. 香槟塔
double[][] ans = new double[query_row + 1][query_row + 1];因为给的就是要求的数组坐标
ans[0][0] = poured;
for(int i = 1; i <= query_row; i++) {实际上就是一个杨辉三角的解题思路
ans[i][0] = Math.max((ans[i - 1][0] - 1), 0) / 2;第零列和对角线上只有一个数据合成来源
ans[i][i] = Math.max((ans[i - 1][i - 1] - 1), 0) / 2;
}
for(int i = 2; i <= query_row; i++) {
for(int j = 1; j <= i; j++) {
ans[i][j] = Math.max((ans[i - 1][j] - 1), 0) / 2 + Math.max((ans[i - 1][j - 1] - 1), 0) / 2;有多余流下均分
}
}
return ans[query_row][query_glass] >= 1 ? 1 : ans[query_row][query_glass];满杯?1:实时
}