这个估计是打印问题,一般static书本打印名称会用斜体,你的理解是对的,int和I5中间是要空格的
打印错了吧
不知道你这个问题是否已经解决, 如果还没有解决的话:因为0放在了正数来表示,0用二进制表示为0...0,32个0;
问题回答:
在这段代码中第二句中的int和I5之间没有空格是因为这是一种不规范的写法。在Java中,基本类型和变量名称之间需要加上空格,这样可以提高代码的可读性和易懂性。
为了遵循Java的规范要求,可以将这段代码中第二句中的int和I5之间加上一个空格,即将int[]res
改为int[] res
。
代码如下:
public int[] maxSlidingWindow(int[] nums, int k) {
if(nums.length == 0 || k == 0) {
return new int[0];
}
Deque<Integer> deque = new LinkedList<>();
int[] res = new int[nums.length - k + 1];
for(int j = 0, i = 1 - k; j < nums.length; i++, j++) {
// 删除 deque 中对应的 nums[i-1]
if(i > 0 && deque.peekFirst() == nums[i - 1]) {
deque.removeFirst();
}
// 保持 deque 递减
while(!deque.isEmpty() && deque.peekLast() < nums[j]) {
deque.removeLast();
}
deque.addLast(nums[j]);
// 记录窗口最大值
if(i >= 0) {
res[i] = deque.peekFirst();
}
}
return res;
}