没想到C#的修改value值,可以直接 dis[key] = value 进行修改~~~
1. 题目描述
2. 题目分析
- 每个数字在数组中出现的次数是独一无二的
- 思路一:桶排,看了看数据范围,挺小,可以桶排
- 思路二:字典(HashMap),最后Value都是等于1的返回true
3. 题目代码
public static bool UniqueOccurrences(int[] arr) { Dictionary<int, int> dic = new Dictionary<int, int>(); for (int i = 0; i < arr.Length; i++) { if (dic.ContainsKey(arr[i])) { int x = 0; dic.TryGetValue(arr[i], out x); x++; dic[arr[i]] = x; } else { dic.Add(arr[i], 1); } } Dictionary<int, int> dis = new Dictionary<int, int>(); foreach (int value in dic.Values) { if (dis.ContainsKey(value)) { int x = 0; dis.TryGetValue(value, out x); x++; dis[value] = x; } else { dis.Add(value, 1); } } foreach (int value in dis.Values) { if (value != 1) { return false; } } return true; }