我是靠谱客的博主 淡定时光,最近开发中收集的这篇文章主要介绍《剑指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.数组中出现次数超过一半的数字】????一、题目????二、解题报告所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(62)

评论列表共有 0 条评论

立即
投稿
返回
顶部