火车进站,华为

Posted lixyuan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了火车进站,华为相关的知识,希望对你有一定的参考价值。

import java.util.*;
public class Main {
    static List<String> res;
    static Stack<Integer> stk;
    static void dfs(int[] a, int n, int u, String path, int times) {
        if(times == n) {
            res.add(path);
            return;
        }
        if(!stk.isEmpty()) { // 出站
            int t = stk.pop();
            dfs(a, n, u, path + t + " ", times+1);
            stk.push(t);
        }
        if(n == u) return;
        stk.push(a[u]);
        dfs(a, n, u+1, path, times);
        stk.pop();
    }
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()) {
            int n = sc.nextInt();
            int[] a = new int[n];
            for(int i=0; i < n; i++) 
                a[i] = sc.nextInt();
            res = new ArrayList<>();
            stk = new Stack<>();
            dfs(a, n, 0, "", 0);
            Collections.sort(res);
            for(int i=0; i < res.size(); i++) {
                System.out.println(res.get(i));
            }
        }
    }
}

以上是关于火车进站,华为的主要内容,如果未能解决你的问题,请参考以下文章

火车进站,华为

华为OJ—火车进站(栈,字典排序)

华为机试HJ77:火车进站

栈:火车进站

HJ77 火车进站

CodeVS3958 火车进站