java—如何获得arraylist中索引的大小?

owfi6suc  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(396)

关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。

上个月关门了。
改进这个问题
我正在编写一个代码,基本上已经完成了,只是这两行有问题,我会完成的。正确的方法是什么?我想我把数组和数组列表搞混了,请帮帮我

private final int MAX = 100000;
    private ArrayList<Integer> adj = new ArrayList(MAX);
    private boolean[] visited = new boolean[MAX];

    private void dfsFirst(int u) {
        if (visited[u]) {
            return;
        }

        visited[u] = true;

        for (int i = 0; i < adj[u].size(); i++) {   //issue here with adj
            dfsFirst(adj[u].get(i));                //issue here with adj
        }
        s.push(u);
    }

下面是我试图翻译成java的原始代码https://www.geeksforgeeks.org/2-satisfiability-2-sat-problem/

6za6bjd0

6za6bjd01#

在kosaraju算法的参考c++实现中, adj 必须是整数列表的数组:

vector<int> adj[MAX]; 
vector<int> adjInv[MAX];

因此,在java中应该是:

private final int MAX = 100000;
private List<Integer>[] adj = new List[MAX];
private boolean[] visited = new boolean[MAX];
private Stack<Integer> s = new Stack<>();

private void dfsFirst(int u) {
    if (visited[u]) {
        return;
    }

    visited[u] = true;

    for (int i = 0; i < adj[u].size(); i++) {   // getting size of the list at `u`
        dfsFirst(adj[u].get(i));               
    }
    s.push(u);
}

相关问题