leetcode-将每个元素替换为右侧最大元素

class Solution {
    public int[] replaceElements(int[] arr) {
        LinkedList<Integer> list = new LinkedList<>();
        if(arr.length==1){
            return new int[]{-1};
        }
        list.add(-1);
        int maxnum = arr[arr.length-1];
        for(int i=arr.length-2;i>=0;i-=1){
            int num = arr[i];
            list.add(maxnum);
            maxnum = Math.max(maxnum,num);
        }
        int[] retarr = new int[arr.length];
        for(int i=0;i<list.size();i+=1){
            retarr[arr.length-i-1] = list.get(i);
        }
        return retarr;
    }
}

leetcode-双周赛题。

没什么好说的,从右侧开始遍历,维护一个滑动窗口即可

发布了48 篇原创文章 · 获赞 0 · 访问量 4338

猜你喜欢

转载自blog.csdn.net/weixin_41327340/article/details/103753515