最大字典序

栈和排序

https://ac.nowcoder.com/acm/problem/14893

发一个java版本的

import java.util.*;

public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] array = new int[n];
        for(int i = 0; i < n; i++){
            array[i] = sc.nextInt();
        }

        int[] maxArray = new int[n];
        maxArray[n - 1] = array[n - 1];
        for(int i = n - 2; i >= 0; i--){
            maxArray[i] = Math.max(array[i], maxArray[i + 1]);
        }

        Stack<Integer> stack = new Stack<>();
        StringBuilder sb = new StringBuilder();

        for(int i = 0; i < n; i++){
            while(!stack.isEmpty() && stack.peek() > maxArray[i]){
                //System.out.print(stack.pop() + " ");
                sb.append(stack.pop() + " ");
            }
            stack.push(array[i]);
        }

        while(!stack.isEmpty()){
            //System.out.print(stack.pop() + " ");
            sb.append(stack.pop() + " ");
        }

        System.out.print(sb.toString());

    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
11-27 10:21
点赞 评论 收藏
分享
11-15 19:28
已编辑
蚌埠坦克学院 硬件开发
点赞 评论 收藏
分享
11-07 13:31
怀化学院 Java
勇敢牛牛不怕难:又疯一个
点赞 评论 收藏
分享
评论
2
收藏
分享
牛客网
牛客企业服务