229. 求众数 II

给定一个大小为 n 的数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。

说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1)。

示例 1:

输入: [3,2,3]

输出: [3]

示例 2:

输入: [1,1,1,3,3,2,2,2]

输出: [1,2]

class Solution {

public List majorityElement(int[] nums) {

List res = new ArrayList<>();

if (nums.length < 1) {

return res;

}

int num1 = nums[0];

int count1 = 0;

int num2 = nums[0];

int count2 = 0;

for (int i = 0; i < nums.length; i++) {

int temp = nums[i];

if (temp == num1) {

count1++;

} else if (temp == num2) {

count2++;

} else if (count1 == 0) {

count1 = 1;

num1 = temp;

} else if (count2 == 0) {

count2 = 1;

num2 = temp;

} else {

count1--;

count2--;

}

}

count1 = 0;

count2 = 0;

int numSum = nums.length / 3;

for (int i = 0; i < nums.length; i++) {

int temp = nums[i];

if (temp == num1) {

count1++;

} else if (temp == num2) {

count2++;

}

}

if (count1 > numSum) {

res.add(num1);

}

if (num1 != num2 && count2 > numSum) {

res.add(num2);

}

return res;

}

}

java求众数_Java实现 LeetCode 229 求众数 II(二)相关推荐

  1. leetcode 229. Majority Element II | 229. 求众数 II(找出现次数超过n/k的元素)

    题目 https://leetcode.com/problems/majority-element-ii/ 题解 思路来源于左程云<程序员代码面试指南> 问题描述 原问题:给定一个整型数组 ...

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

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

  3. [leetcode]229. 求众数 II

    解题思路:题目要求空间复杂度为O(1) 大于1/3的数不会超过2个,利用Boyer-Moore 投票算法找到数量最多的两个数,再检查下这俩个数的数量有没有超过1/3 class Solution {p ...

  4. java 字符串子串_java实现字符串匹配求两个字符串的最大公共子串

    本文实例讲述了java实现求两个字符串最大公共子串的方法.分享给大家供大家参考,具体如下: 最近在项目工作中有一个关于文本对比的需求,经过这段时间的学习,总结了这篇博客内容:求两个字符串的最大公共子串 ...

  5. java牛顿迭代法_Java实现牛顿迭代法求平方根

    突然发现牛顿迭代法求解求根好快啊,好方便啊(好吧,我承认我只会这一种解方程的方式) 附上我试着写的求根代码,求方程涉及大量判断,代码就不贴了,大佬就看着玩一下就行了,别吐槽,我知道这技术含量很低,真的 ...

  6. java老师实例_java实例关于继承求实例,有关学生和老师的程序代码!望诸位软件达人帮忙,谢谢大虾!...

    import java.util.HashMap; public class Cmain { /** *学生类 学号(id)名字 老师标号t_id *A是Cmain的内部类 B一样 */ class ...

  7. java求子串_Java substring()方法:求子字符串(截取字符串)

    String 类中的 substring() 方法实现对字符串从指定的索引位置开始截取,直到此字符串的末尾,并返回一个新的字符串. 语法1 substring(int beginIndex) 参数说明 ...

  8. java 柱状图 宽度_Java实现 LeetCode 84 柱状图中最大得矩形

    84. 柱状图中最大的矩形 给定 n 个非负整数,用来表示柱状图中各个柱子的高度.每个柱子彼此相邻,且宽度为 1 . 求在该柱状图中,能够勾勒出来的矩形的最大面积. 以上是柱状图的示例,其中每个柱子的 ...

  9. java 转化罗马数字._Java刷LeetCode:整数转罗马数字

    0 Java刷LeetCode:整数转罗马数字 Aug. 17, 2018, 9:41 p.m. 题目: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 ...

最新文章

  1. 初始化Mysql系统报错,begin failesd--conpilation aborted at scripts........
  2. 利用3D打印构建衍射深度神经网络,可光速执行数字运算
  3. 工业4.0进行时:增强现实技术如何变革制造业
  4. 工作中常用的第三放的框架
  5. 扣押游戏android,恐怖探索游戏「扣押(DISTRAINT)」
  6. Log4net 在framework Client中编译失败
  7. 为什么张扬的人别人很讨厌_为什么每个人总是讨厌重新设计,即使他们很好
  8. c4.5算法python实现_算法:用Python实现—最优化算法
  9. 【HLSDK系列】服务端 AddToFullPack 函数
  10. vue 函数 路由跳转_vue路由跳转的方式
  11. centos 7 重设密码总是失败
  12. Docker教程小白实操入门(21)--如何备份、恢复数据卷
  13. python locust mqtt_Boomer 实战压测 mqtt,2w 并发轻松实现
  14. S3C6410 SD卡启动uboot分析(详细)
  15. 推荐一款可以在浏览器中运行的人脸识别库
  16. webSocket实现聊天室功能
  17. 华为畅享20 pro 和华为畅享Z 的区别 哪个好
  18. worksheet怎么读_worksheet是什么意思_worksheet的翻译_音标_读音_用法_例句_爱词霸在线词典...
  19. Kotlin【简介】Android开发 配置 扩展
  20. oracle lob类型和mysql text_LOB数据类型

热门文章

  1. 膜拜大佬!成功收获了蚂蚁、拼多多、字节跳动Offer
  2. 享受奇妙的景点莫斯科
  3. iOS 之国际化语言切换
  4. 速锐得解码理想汽车L8方向盘转向角度应用随动大灯照明升级
  5. Raptor 经典例题 4 (递归 子程序)
  6. 微信小程序之获取后台动态数据表格布局display:table
  7. 阿里云RDS 读写分离
  8. 张一鸣:我用排除法选工作和择偶
  9. 机器学习的数学基础(一、高等数学)(阅读笔记)
  10. 免费开源的会计软件 GnuCash 3.4 发布