給定一組 n 人(編號為 1, 2, ..., n), 我們想把每個人分進任意大小的兩組。
每個人都可能不喜歡其他人,那麼他們不應該屬於同一組。
形式上,如果 dislikes[i] = [a, b],表示不允許將編號為 a 和 b 的人歸入同一組。
當可以用這種方法將所有人分進兩組時,返回 true;否則返回 false。
import j**a.util.arraylist;
import j**a.util.hashmap;
import j**a.util.map;
class solution
color = new hashmap();
for (int node = 1; node <= n; ++node)
if (!color.containskey(node) && !dfs(node, 0))
return false;
return true;
}public boolean dfs(int node, int c)
}
886 可能的二分法
題目描述 示例 1 輸入 n 4,dislikes 1,2 1,3 2,4 輸出 true 解釋 group1 1,4 group2 2,3 示例 2 輸入 n 3,dislikes 1,2 1,3 2,3 輸出 false 示例 3 輸入 n 5,dislikes 1,2 2,3 3,4 4,5 ...
可能的二分法
給定一組 n 人 編號為 1,2,n 我們想把每個人分進任意大小的兩組。每個人都可能不喜歡其他人,那麼他們不應該屬於同一組。形式上,如果 dislikes i a,b 表示不允許將編號為 a 和 b 的人歸入同一組。當可以用這種方法將所有人分進兩組時,返回 true 否則返回 false。示例 1 ...
C 二分法查詢,遞迴二分法
用二分法來求需要查詢的值.includeusing namespace std 查詢key元素是否存在 int findkey const int buf 100 const int ilen,const int key else right left mid 1 查詢失敗 return 1 查詢k...