Open carloscn opened 1 year ago
首先对数组进行排序,准备一个count数组,统计次数push进入count数组,如果已经包含了,那么就直接返回false,直到所有元素都判断完,然后返回true。
pub fn unique_occurrences(arr: Vec<i32>) -> bool
{
if (arr.len() < 1) ||
(arr.len() == 2 && arr[0] != arr[1]) {
return false;
}
let mut rep_count:Vec<usize> = vec![];
let mut arr_dup = arr.clone();
let mut i:usize = 0;
let mut count:usize = 0;
arr_dup.sort();
while i < arr.len() - 1 {
if arr_dup[i] == arr_dup[i + 1] {
count += 1;
} else {
if rep_count.contains(&count) {
return false;
} else {
rep_count.push(count);
}
count = 0;
}
i += 1;
}
return true;
}
问题描述
给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数。
如果每个数的出现次数都是独一无二的,就返回 true;否则返回 false。
示例 1:
输入:arr = [1,2,2,1,1,3] 输出:true 解释:在该数组中,1 出现了 3 次,2 出现了 2 次,3 只出现了 1 次。没有两个数的出现次数相同。
示例 2:
输入:arr = [1,2] 输出:false
示例 3:
输入:arr = [-3,0,1,-3,1,1,1,-3,10,0] 输出:true
提示:
1 <= arr.length <= 1000 -1000 <= arr[i] <= 1000
来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/unique-number-of-occurrences