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

这篇具有很好参考价值的文章主要介绍了【LeetCode刷题(数组and排序)】:存在重复元素。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【LeetCode刷题(数组and排序)】:存在重复元素,LeetCode刷题,大话数据结构,leetcode,算法,c语言
给你一个整数数组 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

方法:排序

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

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函数参考链接文章来源地址https://www.toymoban.com/news/detail-724670.html

到了这里,关于【LeetCode刷题(数组and排序)】:存在重复元素的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 前端算法题——给定一个整数数组,判断是否存在重复元素。

    题目可以理解为如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false。 这题一看就是 计数问题,题目中“如果存在一值在数组中出现至少两次”这句话就告诉我们记录每一个数字出现的次数就能解决问题了。  我们遍历数组时,

    2024年02月20日
    浏览(49)
  • 力扣(LeetCode)算法_C++——存在重复元素 II

    存在重复元素 II 给你一个整数数组 nums 和一个整数 k ,判断数组中是否存在两个 不同的索引 i 和 j ,满足 nums[i] == nums[j] 且 abs(i - j) = k 。如果存在,返回 true ;否则,返回 false 。 示例 1: 输入:nums = [1,2,3,1], k = 3 输出:true 示例 2: 输入:nums = [1,0,1,1], k = 1 输出:true 示例

    2024年02月09日
    浏览(15)
  • LeetCode150道面试经典题-- 存在重复元素 II(简单)

    LeetCode150道面试经典题-- 存在重复元素 II(简单)

    给你一个整数数组  nums 和一个整数  k ,判断数组中是否存在两个 不同的索引   i  和   j ,满足 nums[i] == nums[j] 且 abs(i - j) = k 。如果存在,返回 true ;否则,返回 false 。 示例 1:   输入:nums = [1,2,3,1], k = 3 输出:true 示例 2:   输入:nums = [1,0,1,1], k = 1 输出:true  示例

    2024年02月12日
    浏览(10)
  • leetcode-删除排序链表中的重复元素

    83. 删除排序链表中的重复元素 题解: 要删除一个已排序链表中的所有重复元素,从而使每个元素只出现一次,我们可以使用一个指针来遍历这个链表,同时比较当前节点和它下一个节点的值。如果它们相等,我们就删除下一个节点,如果不相等,我们就移动指针。 注:本题

    2024年02月02日
    浏览(12)
  • LeetCode刷题集(三)(26 删除有序数组中的重复项)

    LeetCode刷题集(三)(26 删除有序数组中的重复项)

    基本掌握LeetCode中的26删除有序数组中的重复项 题目描述: 给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。 由于在某些语言中不能改变数组的长度,所以必须将结果放

    2023年04月17日
    浏览(42)
  • 【LeetCode】83. 删除排序链表中的重复元素

    【LeetCode】83. 删除排序链表中的重复元素

    思路 由于给定的链表是排好序的,因此重复的元素在链表中出现的位置是连续的,因此我们只需要对链表进行一次遍历,就可以删除重复的元素。 从指针 cur 指向链表的头节点,随后开始对链表进行遍历。如果当前 cur 与 cur.next 对应的元素相同,那么我们就将 cur.next 从链表

    2024年02月09日
    浏览(12)
  • LeetCode - #83 删除排序链表中的重复元素

    LeetCode - #83 删除排序链表中的重复元素

    我们社区陆续会将顾毅( Netflix 增长黑客,《iOS 面试之道》作者,ACE 职业健身教练。 )的 Swift 算法题题解整理为文字版以方便大家学习与阅读。 LeetCode 算法到目前我们已经更新了 82 期,我们会保持更新时间和进度( 周一、周三、周五早上 9:00 发布 ),每期的内容不多,

    2024年02月10日
    浏览(7)
  • LeetCode.82 删除排序链表中的重复元素 二

    LeetCode.82 删除排序链表中的重复元素 二 题目 思路: 1,提供的是无空头链表,需要加一个头结点来统一操作 2,使用三个工作指针 r:记录前一个节点,方便删除操作 p:记录此基准节点 q:前进节点 两种情况: 一 如果p与q不同,则p,q,r,均前进; 二 如果p与q相同,则q前进,

    2024年01月19日
    浏览(12)
  • 【LeetCode】移除元素、删除有序数组中的重复项、合并两个有序数组

    【LeetCode】移除元素、删除有序数组中的重复项、合并两个有序数组

    🧑‍💻作者: @情话0.0 📝专栏:《LeetCode》 🔖题目链接:移除元素、删除有序数组中的重复项、合并两个有序数组 给你一个数组 nums 和一个值 val,你需要 原地移除所有数值等于 val 的元素,并返回移除后数组的新长度。 不要使用额外的数组空间,你必须仅使用 O(1) 额外空

    2023年04月09日
    浏览(14)
  • LeetCode——82. 删除排序链表中的重复元素II

    通过万岁!!! 题目:题目的大致意思就是,给你一个升序的链表,然后让你里面的元素有重复的,所有重复的元素都进行一个删除。 思路:这个题的简化版是“83.删除排序链表中的重复元素”。看到链表的题目可以优先考虑一下双指针。这里因为head也有可能跟下面的重复

    2024年01月16日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包