学渣带你刷Leetcode0217. 存在重复元素

tech2026-04-17  2

题目描述

给定一个整数数组,判断是否存在重复元素。

如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。

示例 1:

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

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

输入: [1,1,1,3,3,4,3,2,4,2] 输出: true

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/contains-duplicate 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

白话题目:

数组中的一些数,里面要是任意两个相同了,就返回true。全都不同的话显示false。

算法:

(1)快排

(2)因为任意两个只要相同了,就可以返回true了,所以这个问题就好处理了一些。

详细解释关注 B站  【C语言全代码】学渣带你刷Leetcode 不走丢 https://www.bilibili.com/video/BV1C7411y7gB

C语言完全代码

#include <stdio.h> #include <stdlib.h> #include <stdbool.h> int comp(const void *a,const void *b){ return *(int *)a-*(int*)b; } bool containsDuplicate(int* nums, int numsSize){ int i; qsort(nums,numsSize,sizeof(int),comp); //快速排序 for(i=0;i<numsSize-1;i++){ if(nums[i]==nums[i+1]) return true; } return false; } int main() { int numsSize; scanf("%d",&numsSize); int nums[numsSize]; int i=0; for(i=0; i<numsSize; i++) { scanf("%d",&nums[i]); } int result; result=containsDuplicate(nums, numsSize); printf("%d\n",result); return 0; }

 

最新回复(0)