题解 | #牛群的喂养顺序#
牛群的喂养顺序
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);
}
}
SHEIN希音公司福利 222人发布