如何解决数组索引列表;查找重复array [index]的索引
| 我有一个索引数组(我们叫它“ 0”)到另一个数组(称为“ 1”)中。我想扫描原始数组sequence
,以查看这些索引处的值是否重复。例如,如果在sequence
中有等于sequence[indexarray[(value at index 1)]]
的值,那么我想从indexArray
中删除索引值。最后,我将得到一个仅包含其值不重复的索引的数组。
解决方法
一种解决方法是:
NSCountedSet *countedSet = [NSCountedSet setWithArray:sequence];
for (NSNumber *index in indexarray) {
id object = [sequence objectAtIndex:[index integerValue]];
NSUInteger objectCount = [countedSet countForObject:object];
if (objectCount > 1) {
NSLog(\"%@ is duplicate\",object);
}
}
性能:与手动检查每个对象中是否有重复项的操作时间约为(7ѭ(其中n
,m
是阵列的大小)相比,使用NSCountedSet可以将其减少到大约O(n+m)
的操作时间。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。