我是靠谱客的博主 淡定时光,最近开发中收集的这篇文章主要介绍《剑指offer》【剑指Offer 39.数组中出现次数超过一半的数字】????一、题目????二、解题报告,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
????个人主页:企鹅不叫的博客
????专栏
- C语言初阶和进阶
- C项目
- Leetcode刷题
- 初阶数据结构与算法
- C++初阶和进阶
- 《深入理解计算机操作系统》
- 《高质量C/C++编程》
⭐️ 博主码云gitee链接:代码仓库地址
⚡若有帮助可以【关注+点赞+收藏】,大家一起进步!
文章目录
- ????一、题目
- ????1.题目描述
- ????2.原题链接
- ????二、解题报告
- ????1.思路分析
- ????2.代码详解
????一、题目
????1.题目描述
????2.原题链接
剑指Offer 39.数组中出现次数超过一半的数字
????二、解题报告
????1.思路分析
????思路1:
首先将数组排序,返回下标是【n/2】位置的数组一定是众数
当n为基数或者为偶数的时候,数组下标的线覆盖最小值,或者覆盖最大值,那么其他任何情况下,只有中间位置会是包含两种情况????思路2:
目标条件:目标数据超过数组长度的一半,那么对数组,我们同时去掉两个不同的数字,到最后剩下的一个数就是
该数字。如果剩下两个,那么这两个也是一样的,就是结果),在其基础上把最后剩下的一个数字或者两个回到原来数组中,
将数组遍历一遍统计一下数字出现次数进行最终判断
????2.代码详解
int cmp(const void* a, const void* b)
{
return *(int*)a - *(int*)b;
}
int majorityElement(int* nums, int numsSize){
qsort(nums, numsSize, sizeof(nums[0]), cmp);
return nums[numsSize/2];
}
最后
以上就是淡定时光为你收集整理的《剑指offer》【剑指Offer 39.数组中出现次数超过一半的数字】????一、题目????二、解题报告的全部内容,希望文章能够帮你解决《剑指offer》【剑指Offer 39.数组中出现次数超过一半的数字】????一、题目????二、解题报告所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复