有没有一种本地方法来判断一个切片是否有重复项?现在,我用这个:
fn has_dup<T: PartialEq>(slice: &[T]) -> bool {
for i in 1..slice.len() {
if slice[i..].contains(&slice[i - 1]) {
return true;
}
}
false
}
fn main() {
assert_eq!(has_dup(&[1, 2, 3, 2, 5, 6]), true);
assert_eq!(has_dup(&[1, 2, 3, 4, 5, 6]), false);
}
但对于这种基本操作,我不喜欢使用手工编写的代码.
如果标准库中没有可用的函数来执行此操作,这是优化代码的一种方法吗?我知道索引切片并不是最优化的方式(for i in slice {}
对for i in 0..slice.len() { slice[i] }
).