牛客堂常见面试题精讲(一)5
来源:互联网 发布:全民k歌网络异常 编辑:程序博客网 时间:2024/06/07 10:13
数组中哪个数出现次数大于一半?
package com.zhao.niuke;public class Problem_06_FindMajority {//数组中的哪个元素出现次数大于一半//int[] arr = { 1, 2, 3, 1, 1, 2, 1 };public static void printHalfMajor(int[] arr) {int cand = 0;//候选int times = 0;//当前无候选for (int i = 0; i != arr.length; i++) {if (times == 0) {cand = arr[i];//从数组中第一个开始遍历先取出来放到候选中times = 1;//times代表当前候选出现的次数} else if (arr[i] == cand) {times++;}else {times--;}}times = 0;for (int i = 0; i != arr.length; i++) {if (arr[i] == cand) {times++;}}//再次判断times是否大于一半if (times > arr.length / 2) {System.out.println(cand);} else {System.out.println("no such number.");}}public static void main(String[] args) {int[] arr = { 1, 2, 3, 1, 1, 2, 1 };printHalfMajor(arr);//数组中的哪个元素出现次数大于一半}/* * 数组中是否每个元素都只是出现一次? * 数组中哪个元素出现次数大于一半? */}解析:根据debug一步步调试得到解决方案!也就是根据比较
0 0
- 牛客堂常见面试题精讲(一)5
- 牛客堂常见面试题精讲(一)1
- 牛客堂常见面试题精讲(一)2
- 牛客堂常见面试题精讲(一)3
- 牛客堂常见面试题精讲(一)4
- 牛客堂刷题(常见面试题精讲)之矩阵打印
- 牛客堂刷题(常见面试题精讲)之最长回文序列
- 牛客堂刷题(常见面试题精讲)之随机概率
- 牛客堂刷题(常见面试题精讲)之最短子数组长度
- 牛客堂刷题(常见面试题精讲)之左右最大值之差
- [ 面试题 ] 常见面试题 (一)
- 常见面试题(一)
- 常见面试题(一)
- 常见面试题一
- 面试题精讲
- c语言常见面试题(一)
- java常见的面试题(一)
- JDBC常见面试题集锦(一)
- ThreadLocal实现线程隔离
- ubuntu安装的时候遇到的问题
- OCUI界面设计:滚动视图与表格视图嵌套布局
- SQL 获取系统当前时间的函数
- ListView 笔记
- 牛客堂常见面试题精讲(一)5
- 线程的私有数据
- url含中文,服务器收到乱码问题
- nyoj--17--单调递增最长子序列
- android js java 互调 子线程 主线程 直接调用 callback 返回结果
- Special Shell Variables
- 软考视频总结(一)——蜕变
- android 短信,电话监听广播
- 以太网类型字段及值ETHER_TYPE ,类型与含义