请问这是什么写法啊?(语言-java)

img


第二句为什么int和I5中间不写空格了? 第二句为什么int和I5中间不写空格了?

这个估计是打印问题,一般static书本打印名称会用斜体,你的理解是对的,int和I5中间是要空格的

打印错了吧

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这篇文章讲的很详细,请看:Java|给定一个数组,其中第 i 个元素是给定股票第 i 天的价格。设计一个算法找出最大利润。
  • 除此之外, 这篇博客: 同学们初学二进制的几个常见疑问中的 二、java基本类型int为什么负数的绝对值比正数大? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    因为0放在了正数来表示,0用二进制表示为0...0,32个0;

  • 以下回答来自chatgpt:

    问题回答:

    在这段代码中第二句中的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;
    }
    

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^