Leetcode 1452. People Whose List of Favorite Companies Is Not a Subset of Another List
题目链接: People Whose List of Favorite Companies Is Not a Subset of Another List
难度:Medium
题目大意:
给出一个List,List中的每个元素又是一个List,表示某个人最喜欢的几个公司的名字,找出不是其它元素子集的List元素,返回其下标。
思路:
把List元素转化成Set元素,用Set的containsAll()方法来进行判断一个元素是否是另一个元素的子集。
代码
class Solution {
public List<Integer> peopleIndexes(List<List<String>> favoriteCompanies) {
int n=favoriteCompanies.size();
Set<String>[] set=new Set[n];
for(int i=0;i<n;i++){
set[i]=new HashSet<>(favoriteCompanies.get(i));
}//List<String>转Set<String>
List<Integer> res=new ArrayList<>();
for(int i=0;i<n;i++){
boolean isSubset=false;
for(int j=0;j<n;j++){
if(i!=j&&set[i].size()<set[j].size()&&set[j].containsAll(set[i])){
isSubset=true;
break;
}
}
if(!isSubset){
res.add(i);
}
}
return res;
}
}