给定一个大小为 n 的数组 nums ,返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。

你可以假设数组是非空的,并且给定的数组总是存在多数元素。

示例 1:

输入:nums = [3,2,3]
输出:3

众数问题最容易想到的就是每个元素进行遍历,相同的标志增加,但时间复杂度为o(n^2)

超过了LeetCode的限制。

//相同加1,不同减1,最后结果大于一,这个数就是题目要求的数。

int majorityElement(int* nums, int numsSize){int sum = 0;for(int j = 0;j<numsSize;j++){for(int i = 0; i < numsSize; i++){if(nums[j]==nums[i]) sum++;else sum--;}if(sum > 0) return nums[j];else sum=0;}return -1;}

这样我们就考虑用数组保存每次数出现的次数大于一半时即可停止。

int majorityElement(int* nums, int numsSize){int shu[numsSize];memset(shu,-1,sizeof(shu));int flag[numsSize];memset(flag,0,sizeof(flag));shu[0]=nums[0];for(int j = 0;j<numsSize;j++){int i=0;while(shu[i]!=-1){if(nums[j]==shu[i]){//printf("11\n");flag[i]++;break;} else {i++;}}if(shu[i]==-1){shu[i] = nums[j];flag[i]++;}if(flag[i] > numsSize/2) return shu[i];}return -1;}

Leetcode c语言众数问题相关推荐

  1. LeetCode 169. 求众数(摩尔投票)

    文章目录 1. 题目信息 2. 解题思路 3. 代码 3.1 排序 3.2 map计数 3.3 摩尔投票 1. 题目信息 给定一个大小为 n 的数组,找到其中的众数.众数是指在数组中出现次数大于 ⌊ ...

  2. leetcode.169 求众数

    给定一个大小为 n 的数组,找到其中的众数.众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素. 你可以假设数组是非空的,并且给定的数组总是存在众数. // 示例1 输入: [3,2,3] 输出: ...

  3. Leetcode 169. 求众数 解题思路及C++实现

    解题思路: 因为int型数值只有32位,使用位运算的方法来解这道题时,就是要确定这个众数,在32位的位置上分别是0还是1. 由题意,因为众数的个数超过n/2,所以遍历数组nums后,如果某一位置上1的 ...

  4. Leetcode:169. 求众数

    题目链接 求众数 题目描述 给定一个大小为 n 的数组,找到其中的众数.众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素. 你可以假设数组是非空的,并且给定的数组总是存在众数. 示例 1: 输入: ...

  5. LeetCode 169.求众数

    题目描述: 给定一个大小为 n 的数组,找到其中的众数.众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素. 你可以假设数组是非空的,并且给定的数组总是存在众数. 示例 1: 输入: [3,2,3] ...

  6. [Leetcode] Majority Element 众数

    Majority Element I Given an array of size n, find the majority element. The majority element is the ...

  7. LeetCode 229. 求众数 II(摩尔投票)

    1. 题目 给定一个大小为 n 的数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素. 说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1). 示例 1: 输入: [3,2,3] 输出: ...

  8. Leetcode C语言 “加一”

    加一 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一. 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字. 你可以假设除了整数 0 之外,这个整数不会以零开头. 例 ...

  9. LeetCode JAVA语言全部解题思路+答案代码+多种解法+关键注释(持续更新...)

    第一题: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标. 你可以假设每种输入只会对应一个答案.但是,你不能重复利用这个数组 ...

最新文章

  1. centos/linux扩容Swap分区
  2. 一起来学习 WebRTC (篇一)| 掘金技术征文
  3. [RabbitMQ]RabbitMQ原理与相关操作(一)
  4. jQuery 内容文本值|| 案例:购物车案例模块-增减商品数量 || 案例:购物车案例模块-修改商品小计
  5. oracle cost cardinality,ORACLE 执行计划中cost cardinality bytes cpu_cost io_cost解释
  6. WinAPI: GetLogicalDrives - 判断系统中存在的逻辑驱动器
  7. python替代_【Python】选择ipython替代python的理由
  8. 商淘多b2b2c商城系统怎么在个人电脑上安装_企业怎么做好b2b2c商城网站建设?...
  9. html离线地图,离线地图三维开发-添加HTML
  10. member pm.php,Dedecms 会员中心注入漏洞5
  11. python小测验3_python基础小测试
  12. Objective-C概述
  13. 【Photoshop】证件照换底色
  14. JS事件冒泡浏览器兼容
  15. 2019年新年书单 |不可错过的区块链好书 请查收
  16. 星舰到底要实现什么壮志?火星移民,月球旅行,亦是地球轨道运输
  17. 对字下面添加下划虚线
  18. gitflow概念及上传本地文件到github
  19. 真正解决layer弹层遮罩挡住窗体的问题
  20. 又是一年植树节,一起为城市添 绿,共赴“春天的约会”

热门文章

  1. java获取时间戳有多少种方式,给我写出5种以上示例
  2. Rocky Linux 9.0系统安装详细教程
  3. 我的梦想在兄弟连彻底实现
  4. 想要知道孩子的长相吗
  5. js中科学计数法转数字的问题
  6. 前端工具汇总(不定期更新)
  7. 如何编写一个自动投票程序 1
  8. 软件大战升级,通用汽车与Qt达成合作,增强车内体验
  9. c语言scanf(%*c?,sex),计算机等级考试二级C语言考前密卷[2]下
  10. 网页设计用表格设计一个计算器界面 用于小白入门 安排