博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
169. Majority Element 出现次数超过n/2的元素
阅读量:5332 次
发布时间:2019-06-14

本文共 1272 字,大约阅读时间需要 4 分钟。

[抄题]:

Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times.

You may assume that the array is non-empty and the majority element always exist in the array.

 [暴力解法]:

时间分析:

空间分析:

[奇葩输出条件]:

[奇葩corner case]:

[思维问题]:

以为n个元素的出现次数一定也要用n个变量来存。

[一句话思路]:

用一个count来存最多次数,节约空间

[输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入):

[画图]:

[一刷]:

  1. 看清要求,最后返回的是major元素,而不是次数

[二刷]:

[三刷]:

[四刷]:

[五刷]:

  [五分钟肉眼debug的结果]:

[总结]:

用一个count的++--来节约存储空间

[复杂度]:Time complexity: O(n) Space complexity: O(1)

[英文数据结构或算法,为什么不用别的数据结构或算法]:

[关键模板化代码]:

[其他解法]:

[Follow Up]:

[LC给出的题目变变变]:

229. Majority Element II 数学题,也是醉了

 [代码风格] :

class Solution {    public int majorityElement(int[] nums) {        //ini        int major = nums[0];        int count = 1;        //1 - n        for (int i = 1; i < nums.length; i++) {            //nums[i] != major, count--,if count == 0            if (nums[i] != major) {                if (count == 0) {                    major = nums[i];                    count++;                }                count--;            }else {                //nums[i] == major, count++                count++;            }            }        return major;    }}
View Code

 

转载于:https://www.cnblogs.com/immiao0319/p/8570646.html

你可能感兴趣的文章
[搬运] 写给 C# 开发人员的函数式编程
查看>>
Shiro权限控制框架
查看>>
vsftpd虚拟用户【公司系统部分享】
查看>>
盒子box在网页中居中的方法
查看>>
Python之旅Day14 JQuery部分
查看>>
core--线程池
查看>>
redux-effect
查看>>
Swift和OC混编
查看>>
Android轻量级的开源缓存框架ASimpleCache
查看>>
他山之石:加载图片的一个小问题
查看>>
shell - 常识
查看>>
[PHP] excel 的导入导出
查看>>
mssql sqlserver 使用sql脚本 清空所有数据库表数据的方法分享
查看>>
分层图最短路【bzoj2763】: [JLOI2011]飞行路线
查看>>
linux下编译复数类型引发的错误:expected unqualified-id before '(' token
查看>>
codeforces 1041A Heist
查看>>
字典常用方法
查看>>
Spring Cloud Stream消费失败后的处理策略(三):使用DLQ队列(RabbitMQ)
查看>>
python的猴子补丁monkey patch
查看>>
架构模式: API网关
查看>>