【LeetCode刷题(数组and排序)】:存在重复元素

给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false

示例 1:

输入:nums = [1,2,3,1]

输出:true

示例 2:

输入:nums = [1,2,3,4]

输出:false

示例 3:

输入:nums = [1,1,1,3,3,4,3,2,4,2]

输出:true

方法:排序

在对数字从小到大排序之后,数组的重复元素一定出现在相邻位置中。因此,我们可以扫描已排序的数组,每次判断相邻的两个元素是否相等,如果相等则说明存在重复的元素

cpp 复制代码
int cmp(const void* _a, const void* _b) {
    int a = *(int*)_a, b = *(int*)_b;
    return a - b;
}

bool containsDuplicate(int* nums, int numsSize) {
    qsort(nums, numsSize, sizeof(int), cmp);
    for (int i = 0; i < numsSize - 1; i++) {
        if (nums[i] == nums[i + 1]) {
            return true;
        }
    }
    return false;
}

qsort排序即可解决

compare函数比较返回数值
qsort函数参考链接

相关推荐
曾几何时`32 分钟前
C++——位图、布隆过滤器
数据结构·算法
太白IT记34 分钟前
1572. 矩阵对角线元素的和
线性代数·算法·矩阵
GodKK老神灭1 小时前
STM32 实现PID
stm32·单片机·算法·c
字节高级特工2 小时前
每日一篇博客:理解Linux动静态库
linux·运维·服务器·c语言·c++·windows·ubuntu
Frank_zhou2 小时前
算法-数组实战【设计链表】中等
数据结构·算法
多吃蔬菜!!!2 小时前
C/C++内存管理
c语言·jvm·c++
司铭鸿3 小时前
Java响应式编程:Project Reactor与WebFlux高并发实践
java·开发语言·算法·职场和发展·生活
Nicholas683 小时前
数据结构与算法(Dart)之HashMap(十八)
算法