美文网首页
数组中有重复元素吗?

数组中有重复元素吗?

作者: 我才是臭吉吉 | 来源:发表于2019-02-20 12:40 被阅读0次

题目

给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。

  • 示例1:
输入: [1,2,3,1]
输出: true
  • 示例2:
输入: [1,2,3,4]
输出: false

解法1

  1. 对数组进行排序;
  2. 遍历排序后的数组,若相邻数据相同,则包含重复数据;否则不包含。
BOOL checkDuplicateNumber1(NSArray<NSNumber *>* targetInfo) {
    if (targetInfo.count <= 1) {
        return NO;
    }
    // 1.排序
    NSArray *sortedInfo = [targetInfo sortedArrayUsingComparator:^NSComparisonResult(NSNumber* _Nonnull obj1, NSNumber* _Nonnull obj2) {
        // obj1比obj2,升序;用obj2比obj1,降序
        return [obj1 compare:obj2];
    }];
    
    // 2.查看相邻两数是否相同
    NSNumber *lastObj;
    for (NSNumber *currentObj in sortedInfo) {
        if (!lastObj) {
            lastObj = currentObj;
            continue;
        }
        if (currentObj.integerValue == lastObj.integerValue) {
            return YES;
        }
        lastObj = currentObj;
    }
    return NO;
}

解法2

转换为NSSet集合对象,若元素数少于原数组,则包含重复数据。

BOOL checkDuplicateNumber2(NSArray<NSNumber *>* targetInfo) {
    if (targetInfo.count <= 1) {
        return NO;
    }
    // 转化为NSSet对象,若元素比原数组少,则有相同数据
    NSSet *setInfo = [NSSet setWithArray:targetInfo];
    return setInfo.count != targetInfo.count;
}

相关文章

  • 数组中有重复元素吗?

    题目 给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元...

  • 2019-03-01 Day54待提高

    1.#### 重复 N 次的元素在大小为 2N 的数组 A 中有 N+1 个不同的元素,其中有一个元素重复了 N ...

  • 数组去重

    在我们开发中经常遇到一种情况---数组中有重复的元素,但我们并不希望数组中的元素重复出现。那我们就需要删除数组中重...

  • LeetCode 961. 重复 N 次的元素

    961. 重复 N 次的元素 在大小为 2N 的数组 A 中有 N+1 个不同的元素,其中有一个元素重复了 N 次...

  • 961. 重复 N 次的元素

    在大小为 2N 的数组 A 中有 N+1 个不同的元素,其中有一个元素重复了 N 次。返回重复了 N 次的那个元素...

  • iOS 从数组随机取元素

    数组随机取元素 — 不考虑重复情况 数组随机取元素 — 去除重复元素

  • 元素中有重复元素吗?(2)

    题目 给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = n...

  • 961. 重复 N 次的元素

    题目描述 在大小为 2N 的数组 A 中有 N+1 个不同的元素,其中有一个元素重复了 N 次。返回重复了 N 次...

  • 重复 N 次的元素

    在大小为 2N 的数组 A 中有 N+1 个不同的元素,其中有一个元素重复了 N 次。 返回重复了 N 次的那个元...

  • LeetCode 重复 N 次的元素

    在大小为 2N 的数组 A 中有 N+1 个不同的元素,其中有一个元素重复了 N 次。 返回重复了 N 次的那个元...

网友评论

      本文标题:数组中有重复元素吗?

      本文链接:https://www.haomeiwen.com/subject/tnzcyqtx.html