169 Majority Element [LeetCode Java实现]
2024-09-30 16:13:59
题目链接:majority-element
/**
*
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.
*
*/
public class MajorityElement { // 40 / 40 test cases passed.
// Status: Accepted
// Runtime: 253 ms
// Submitted: 1 minute ago //时间复杂度为 O(n), 空间复杂度为 O(1) //因为最多的那个元素占一半及以上, 故能够和别的元素相互抵消,最后剩下的未抵消掉的元素为所求
//将数组分成三块:num[0...i]为 归并的 还未抵消的数组。 num[i+1...j-1]空暇区, num[j...num.length-1]为等待抵消的数组
//抵消规则:若num[i] = num[j] 则把num[j]归入num[0...i+1]数组中
// 若num[i] != num[j] 则把num[i] 抵消掉 然后 i-- static int majorityElement(int[] num) { int i = -1; for (int j = 0; j < num.length; j++) { if(i == -1) num[++i] = num[j];
else {
if(num[j] == num[i]) num[ ++i] = num[j];
else i --;
} }
return num[0];
}
public static void main(String[] args) { System.out.println(majorityElement(new int[]{4}));
System.out.println(majorityElement(new int[]{4, 4, 5}));
System.out.println(majorityElement(new int[]{4, 3, 3}));
System.out.println(majorityElement(new int[]{4, 3, 4}));
} }
最新文章
- 使用SVG绘制湖南地图
- Oracle trunc()函数的用法
- 轻松搭建Unity3D 安卓Android开发环境
- CentOS7 SSH相关
- 在CentOS 7 上安装广告服务器 Revive Adserver
- 转载php在IIS中运行
- [转] iOS (OC) 中 KVC 与 KVO 理解
- Embedded Linux Primer----嵌入式Linux基础教程--章节介绍
- Python之路【第三篇】:模块
- 1.Java集合总结系列:Java集合概述
- C#泛型简单应用
- [Swift]LeetCode925. 长按键入 | Long Pressed Name
- Log4j的扩展RollingFileAppender、DailyRollingFileAppender
- jqgrid again
- hdu6273 线性差分
- Linux rsync同步
- [js] - 前端FileReader使用,适用于文件上传预览.(并未传入后端)
- 使用thinkphp框架实现Excel导入数据库
- Thinkphp 3.1. 3 ueditor 1.4.3 添加水印
- nginx在使用非80端口做反向代理【转】
热门文章
- 给定一个函数rand()能产生0到n-1之间的等概率随机数,问如何产生0到m-1之间等概率的随机数?
- Android 嵌套GridView,ListView只显示一行的解决办法
- linux下查看硬件配置的相关命令
- CMDB反思2
- maven学习系列第二课,关于springmvc的pop.xml的依赖的添加
- linux中配置桥接网络,让虚拟机能够上网
- linux下配置双网卡及RAC规划——1
- 机器学习&mdash;&mdash;Logistic回归
- 判断线段和直线相交 POJ 3304
- Tkinter教程之Event篇(2)