【interview17.10】 主要元素:详解
interview17.10 主要元素
1.题目
数组中占比超过一半的元素称之为主要元素。给定一个整数数组,找到它的主要元素。若没有,返回-1。
2.算法
3.排序算法 + 计数器
解题思路:从题干分析,我们需要找到数组中数量占比多于一半(numsSize % 2 + 1)的数字。由于数字是随机的并且取值范围较大,因此不适合使用桶计数。可以先将数组进行排序,然后遍历一遍数组,统计每种数字的数量,如果数量多于一半,就输出当前的数据即可。
步骤1:使用qsort排序。初始化一个统计变量count
步骤2:从数组左端开始遍历,检查当前数字nums[i]与上一个数字nums[i - 1]之间的关系
步骤3:若nums[i] != nums[i - 1]。统计count是否多于一半,如果多于一半则输出nums[i - 1]。如果少于一半,则count清为1。
步骤4:若nums[i] == nums[i - 1]。count自增1。
int sort_up(const void *a, const void *b)
{return *(int *)a - *(int *)b;
}int majorityElement(int* nums, int numsSize){if (numsSize == 1)return *nums;int count = 1;qsort(nums, numsSize, sizeof(int), sort_up);for(int i = 1; i < numsSize; i++) {if (nums[i] == nums[i - 1])count++;elsecount = 1;if (count > numsSize % 2)return nums[i];}return -1;
}
【interview17.10】 主要元素:详解相关推荐
- OpenCV-Python实战(10)——详解 OpenCV 轮廓检测
OpenCV-Python实战(10)--详解 OpenCV 轮廓检测 0. 前言 1. 轮廓介绍 2. 轮廓检测 3. 轮廓压缩 4. 图像矩 4. 1 一些基于矩的对象特征 4.2 Hu 不变矩 ...
- I2C从地址之7位,8位和10位详解
IIC/I2C从地址之7位,8位和10位详解 概述 经常有用户问我,使用USB2XXX的USB2IIC功能的时候,从机地址应该怎么传递的问题,这个问题的根源在于不同的I2C从机厂商采用了不同的I2C总 ...
- OWASP top 10漏洞详解
一.写在前边 临近毕业,最近在找实习单位,看到好多招聘要求熟悉owasp top 10 安全漏洞,于是在经过一番查资料,终于有了大致的了解,为了加深印象,特意通过博客记录一下,也希望为有同样需求的 ...
- redhat7.1安装mysql_redhat7.1 安装mysql 5.7.10步骤详解(图文详解)
在redhat下安装MySQL,步骤如下 Mysql目录安装位置:/usr/local/mysql 数据库保存位置:/data/mysql 日志保存位置:/data/log/mysql 下载安装包 h ...
- 3天搞定的小型B/S内部管理类软件定制开发项目【软件开发实战10步骤详解】
十一休假,杭州西湖边逛了一圈只能用人山人海来形容,浙大紫金港校区也逛了一圈风景如画,建设得真不错很棒,假期就去了这2个地方,然后在家里陪老婆.看孩子.洗尿布.打了几局星际争霸,在网上接了一个B/S架构 ...
- 【4.10 博弈论详解】
更好的阅读体验 \color{red}{更好的阅读体验} 更好的阅读体验 目录 4.10 博弈论 4.10.1 Nim 游戏 4.10.2 台阶-Nim 游戏 4.10.3 集合-Nim 游戏 4.1 ...
- IIC从地址之7位,8位和10位详解
7位寻址 在7位寻址过程中,从机地址在启动信号后的第一个字节开始传输,该字节的前7位为从机地址,第8位为读写位,其中0表示写,1表示读. 图1:7位寻址.I2C总线规范规定,标准模式I2C,从机地址为 ...
- 网络安全入门必知的OWASP top 10漏洞详解
0.OWASP Top10是什么? 首先介绍下OWASP,开放式Web应用程序安全项目(OWASP,Open Web Application Security Project)是一个非营利组织,不附属 ...
- 10分钟详解:算法面试5大必考排序方式
来源:IT技术思维原创,转载请注明原出处 内容提供:苏勇, Google 资深软件工程师 算法学习其实是一种学习和提高思维能力的过程.无论是在面试还是实际的工作和生活中,都会碰见一些从没遇到过的问题 ...
- SAP HANA解决方案设计10问详解
https://www.toutiao.com/a6674578205040443907/ SAP是全球最大的企业软件供应商,提供包括ERP.SRM.BI等在内的企业级应用软件.而HANA(High ...
最新文章
- Ceph分布式存储实战2.4 本章小结
- 【译】Using Objects to Organize Your Code
- socketserver 源码浅读
- 牛客网【每日一题】4月29日题目精讲 Symmetric Matrix
- Mysql处理海量数据时的一些优化查询速度方法
- java jpa jar_JPA 开发所需的Jar包 (基于Hibernate)
- 网络工程师成长日记382-西部数据Juniper网络设备调试
- Linux使用socket选项的定时器
- Java代理(Proxy)模式
- 123D画一个产品外壳3d图给3d打印机打印完整流程
- 用Python实现从Oracle到GreenPlum的表结构转换
- 三坐标测量软件DMIS语句解释
- 七夕界的浪漫之光,向你安利程序员的表白方式
- 微信开放平台开发常见错误(长期更新)
- 标准差分母是n和n-1的区别(有偏估计与无偏估计)
- Python学习:choice()与choices()、sample()的区别
- GBU610-ASEMI智能家居整流桥GBU610
- 使用charles map remote host
- 英文,数字和中文混合的彩色验证码实现
- 计算机图形学 实验7 《复杂图形绘制-Bezier曲线与Hermite曲线》
热门文章
- 标记 (TAG) 您的 k8s 集群资源
- 如何在Kubernetes集群动态使用 NAS 持久卷 1
- 痛!做C#半年,挣的不如做AI1个月?”看到第二句泪目……
- OPPO 正式发布 ColorOS 7,“轻”装上阵带来多项亮眼新功能……
- 漫画:五分钟看懂车联网
- android 创建文件夹_Android 动画小记
- 电脑编程教学_东莞沙田mastercam编程学习怎么收费
- java 两个sql文_Java和SQL取两个字符间的值
- oracle 数据库_操作事项_05
- Access中编写VBA代码时,如何区分、使用“.”和“!”