leetcode:217. 存在重复元素(先排序再比较邻位)

一、题目:

 

函数原型:

bool containsDuplicate(int* nums, int numsSize)

参数分析:

nums是传入的数组

numsSize是传入数组的元素个数

二、思路:

根据题意,判断数组中是否存在出现两次以上的元素。可以先将数组排序(升序),那么相等的元素就会相邻,只要判断数组中是否有相邻元素相等即可。

排序方法:使用快排函数qsort(库函数),运行速度会更快,使用其他排序函数可能会超时

三、代码:

int cmp(const void* e1, const void* e2)
{int a=*(int*)e1;int b=*(int*)e2;return a-b;//return *(int*)e1 - *(int*)e2;
}// 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;
// }bool containsDuplicate(int* nums, int numsSize) 
{//bubble_sort(nums, numsSize);qsort(nums, numsSize, sizeof(nums[0]), cmp);for (int i = 0; i < numsSize - 1; i++){if (nums[i] == nums[i + 1]){return true;}}return false;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/112649.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于混沌博弈优化的BP神经网络(分类应用) - 附代码

基于混沌博弈优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于混沌博弈优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.混沌博弈优化BP神经网络3.1 BP神经网络参数设置3.2 混沌博弈算法应用 4.测试结果…

【汇编语言特别篇】DOSBox及常用汇编工具的详细安装教程

文章目录 &#x1f4cb;前言一. ⛳️dosbox的介绍、下载和安装1.1 &#x1f514;dosbos简介1.2 &#x1f514;dosbox的下载1.2.1 &#x1f47b;方式一&#xff1a;官网下载(推荐)1.2.2 &#x1f47b;方式二&#xff1a;网盘安装包 1.3 &#x1f514;dosbox的安装1.4 &#x1f5…

CSS 滚动驱动动画 timeline-scope

timeline-scope 语法兼容性 timeline-scope 看到 scope 就知道这个属性是和范围有关, 没错, timeline-scope 就是用来修改一个具名时间线(named animation timeline)的范围. 我们介绍过的两种时间线 scroll progress timeline 和 view progress timeline, 使用这两种时间线(通…

TCP/IP网络分层模型

TCP/IP当初的设计者真的是非常聪明&#xff0c;创造性地提出了“分层”的概念&#xff0c;把复杂的网络通信划分出多个层次&#xff0c;再给每一个层次分配不同的职责&#xff0c;层次内只专心做自己的事情就好&#xff0c;用“分而治之”的思想把一个“大麻烦”拆分成了数个“…

Linux篇 五、Ubuntu与Linux板卡建立NFS服务

Linux系列文章目录 一、香橙派Zero2设置开机连接wifi 二、香橙派Zero2获取Linux SDK源码 三、香橙派Zero2搭建Qt环境 四、Linux修改用户名 文章目录 Linux系列文章目录前言一、连接到局域网互ping测试 二、安装NFS服务配置NFS更新exports配置三、板卡安装NFS客户端四、板卡临时…

LINUX | hexdump以16进制查看文件内容

LINUX | hexdump以16进制查看文件内容 时间&#xff1a;2023-10-20 文章目录 LINUX | hexdump以16进制查看文件内容1.参考2.示例1.以ASCII字符显示文件中字符2.以16进制和相应的ASCII字符显示文件里的字符3.只显示文件中前n个字符4.以偏移量开始格式输出 1.参考 1.Linux命令–h…

前端 js 经典:递归

1. 什么是递归 函数内部调用自己&#xff0c;这就是递归 2. 为什么用递归 对数据进行处理&#xff0c;优化处理流程可以用递归 3. 构成递归三要素&#xff08;必须&#xff09; 3.1 参数递归逻辑&#xff1a;如下例&#xff0c;demo(n-1)对比 demo(n)参数递归逻辑为 n-1 …

【SA8295P 源码分析 (四)】32 - QNX Ethernet Phy_Switch 驱动初始化 源码分析

【SA8295P 源码分析】32 - QNX Ethernet Phy_Switch 驱动初始化 源码分析 一、使用现有的库配置 emac 和 phy_switch功能二、phy_switch 驱动初始化流程分析2.1 emac_mdio_register() 函数分析2.2 emac_mdio_callback() 函数分析系列文章汇总见:《【SA8295P 源码分析 (四)】网…

请问嵌入式或迁移学习要学什么?

请问嵌入式或迁移学习要学什么&#xff1f; 学习嵌入式和迁移学习是一个很好的方向&#xff0c;尤其是在军I领域。以下是一些你可以提前学习的基本 知识和步骤: 嵌入式系统:最近很多小伙伴找我&#xff0c;说想要一些嵌入式资料&#xff0c;然后我根据自己从业十年经验&#…

泛微项目二次开发

一、开发入门 1.1、项目开发背景介绍 泛微产品客户基数大,由于每个客户对于自身的OA系统有不同的定位,所以需要对产品有不同的实现,二次开发是为了能够尽可能保持产品主题功能不变的情况下,实现客户的定制化需求。 E9 总体采用前后端分离架构,前端采用React + Mobx + Wea…

深入理解算法:从基础到实践

深入理解算法&#xff1a;从基础到实践 1. 算法的定义2. 算法的特性3. 算法的分类按解决问题的性质分类&#xff1a;按算法的设计思路分类&#xff1a; 4. 算法分析5. 算法示例a. 搜索算法示例&#xff1a;二分搜索b. 排序算法示例&#xff1a;快速排序c. 动态规划示例&#xf…

tcp专题

目录 一.TCP的连接建立 1.1面向连接 1.2TCP报文结构 1.3TCP三次握手 1.4TCP的状态变化 1.5为什么必须是三次握手&#xff0c;而不是两次或者四次 二.TCP的连接断开 2.1TCP的"四次挥手 2.2TCP的状态变化 2.3为什么要有TIME_WAIT状态 2.4为什么TIME_WAIT状态的时…

C++类和对象(三) (this指针)

this指针 1 this指针的引出 我们先来定义一个日期类 Date class Date { public:void Init(int year, int month, int day){_year year;_month month;_day day;}void Print(){cout << _year << "-" << _month << "-" << …

OpenSSL 密码库实现证书签发流程详解

目录 0. 基础理论openssl简介对称加密和非对称加密生成证书流程原理CA签发流程openssl基础操作 1. 生成证书的步骤与原理2. 标准的CA签发流程2.1 创建私钥&#xff08;.key)2.2 基于私钥创建证书签名请求&#xff08;.csr&#xff09;2.3 &#xff08;可选&#xff09;直接同时…

写一个简单的解释器(0) 简介和目标

解释语言和编译语言 编译语言&#xff0c;是指其编译器生成的可执行文件为机器码&#xff0c;可以直接在计算机上运行的语言&#xff0c;比如说 C/C \texttt{C/C} C/C 。 解释语言&#xff0c;是指经由解释器生成的可执行文件为字节码文件&#xff0c;只能运行在特殊的虚拟机…

Python调用包,及路径问题

我震惊了&#xff0c;搜了很多博客没有理解好的问题&#xff0c;GPT可以理解我的问题&#xff0c;并做出回答。也许这才是人工智能解决问题的意义&#xff0c;感谢GPT。 文章目录 问题1: 如何在自己的Python项目中调用自己写的文件问题2&#xff1a;如果执行调用的文件和被调用…

SystemVerilog Assertions应用指南 Chapter 1.14蕴含操作符

1.14蕴含操作符 属性p7有下列特别之处 (1)属性在每一个时钟上升沿寻找序列的有效开始。在这种情况下,它在每个时钟上升沿检查信号“a”是否为高。 (2)如果信号“a”在给定的任何时钟上升沿不为高,检验器将产生一个错误信息。这并不是一个有效的错误信息,因为我…

TCP通信-使用线程池优化

下面的通信架构存在问题&#xff1a; 客户端与服务端的线程模型是&#xff1a; N-N的关系&#xff0c;客户端并发越多&#xff0c;系统瘫痪的越快。 引入线程池处理多个客户端消息 代码实现 public class ClientDemo1 {public static void main(String[] args) {try {Syste…

JVM——JVM概述以及双亲委派机制

JVM探究 请你谈谈你对JVM的理解&#xff1f;Java8虚拟机和之前的有什么变化更新&#xff1f;什么是OOM&#xff0c;什么是栈溢出StackOverFlowError&#xff1f;怎么分析&#xff1f;JVM的常用调优参数有哪些&#xff1f;内存快照如何抓取&#xff1f;怎么分析Dump文件&#x…