博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode(229):Majority Element ||
阅读量:6703 次
发布时间:2019-06-25

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

Majority Element II:Given an integer array of size n, find all elements that appear more than ⌊ n/3 ⌋ times. The algorithm should run in linear time and in O(1) space.

题意:找出给定数组中出现次数多于数组长度三分之一的元素

思路:根据提示,可知这样的元素最多只能存在两个,因此根据可以进行求解。

代码:

public class Solution {    public List
majorityElement(int[] nums) { int cnt1=0, cnt2 =0; int a=-1,b=-1; for(int n:nums){ if(n==a) cnt1++; else if(n==b) cnt2++; else if(cnt1==0){ a= n; cnt1=1; }else if(cnt2==0){ b = n ; cnt2 = 1; }else{ cnt1--; cnt2--; } } cnt1 = 0; cnt2 = 0; for(int n:nums){ if(n==a) cnt1++; else if(n==b) cnt2++; } List
result=new ArrayList
(); if(cnt1 > nums.length/3) result.add(a); if(cnt2 > nums.length/3) result.add(b); return result; }}

转载于:https://www.cnblogs.com/Lewisr/p/5200861.html

你可能感兴趣的文章
枚举enum、NS_ENUM 、NS_OPTIONS
查看>>
持续集成与持续部署宝典Part 2:创建持续集成流水线
查看>>
javascript高级程序设计学习之数值转换 |Number(),parseInt(),parseFloat()
查看>>
Angular属性型指令
查看>>
如何处理错误信息 Pricing procedure could not be determined
查看>>
【CentOS 7笔记11】,目录权限,所有者与所有组,隐藏权限#171022
查看>>
Mybatis 详解--- 一级缓存、二级缓存
查看>>
区块链BAAS平台:公共或私人区块链编程以用于各种用途
查看>>
Sublime 资源汇总
查看>>
2013 ACM/ICPC Asia Regional Changsha Online - C
查看>>
ACM中java快速入门
查看>>
discuz x2.5插件开发傻瓜图文教程,用demo说话
查看>>
利用HTML中的XML数据岛记录浏览
查看>>
unicode字符、python乱码问题
查看>>
我的友情链接
查看>>
cobbler get-loaders 通过代理下载
查看>>
通过脚本测试ubuntu的源
查看>>
一些不错的网站
查看>>
safari的一些问题
查看>>
面试官问我:平常如何对你的 Java 程序进行调优?
查看>>