题解 | #牛群的喂养顺序#

牛群的喂养顺序

https://www.nowcoder.com/practice/ce8860b6a8c74dfd8ccd15998970e447

知识点

数组

解题思路

用一个parent数组来存储每个元素到达的前置条件,如果在查找a[i]中发现要到达这个地方时需要用到当前元素b

[i],代表存在闭环返回false,如果没有出现,再把到达a[i]的parent设置为b[i]。

Java题解

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param numCows int整型 
     * @param feedOrders int整型二维数组 
     * @return bool布尔型
     */
     int[] parent;
    public boolean canFeedAllCows (int numCows, int[][] feedOrders) {
        // write code here
        parent = new int[numCows];
        for(int i = 0; i < numCows; i++){
            parent[i] = i;
        }
        for(int i = 0; i < feedOrders.length; i++){
            if(findParent(feedOrders[i][1],feedOrders[i][0])){
                parent[feedOrders[i][0]] = feedOrders[i][1];
            } else {
                return false;
            }
        }
        return true;
    }

    //查找父元素
    public boolean findParent(int i, int num){
        if(parent[i] == i) return true;
        if(parent[i] == num) return false;
        return findParent(parent[i],num);
    }
}

全部评论

相关推荐

10-09 09:39
门头沟学院 C++
HHHHaos:这也太虚了,工资就一半是真的
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务