选择考了很多python...
编程题不会告诉你过了百分之多少。
1. 类似于两数之和,acm模式。
2. 核心模式。俄罗斯方块:找有正方形的左右边界l r。然后在l和r之间遍历数组,如果>0就减一,否则计数+1。直到l和r之间没有0。
class Solution {
public int trap(int[] height) {
int l = 0, r = height.length - 1;
int res = 0;
while (true) {
while (l < height.length && height[l] == 0) {
l++;
}
while (r >= 0 && height[r] == 0) {
r--;
}
if (l >= r || l >= height.length || r < 0) {
break;
}
int cnt = 0;
for (int i = l; i <= r; i++) {
if (height[i] > 0) {
height[i]--;
} else {
res++;
cnt++;
}
}
if (cnt == 0) {
break;
}
}
return res;
}
}
#中兴##中兴笔试#