好未来:n个数里出现次数大于等于n/2的数
来源:互联网 发布:tcpip网络层安全协议 编辑:程序博客网 时间:2024/05/21 04:39
好未来:n个数里出现次数大于等于n/2的数
题目描述
输入n个整数,输出出现次数大于等于数组长度一半的数。
输入描述:
每个测试输入包含 n个空格分割的n个整数,n不超过100,其中有一个整数出现次数大于等于n/2。
输出描述:
输出出现次数大于等于n/2的数。
示例1
输入3 9 3 2 5 6 7 3 2 3 3 3
输出3
思路:同《剑指Offer》 数组中出现次数超过一半的数字
这道题没有考虑这种情况【1、1、1、2、2、2】,1和2出现的次数都是数组长度的一半。当然,代码也AC了。
import java.util.*;public class Main { // 不考虑【1,1,1,2,2,2】的情况 public static int solution(String[] arr) { int num = Integer.parseInt(arr[0]); int count = 0; for(int i = 1; i < arr.length; i++) { int temp = Integer.parseInt(arr[i]); if(temp == num) { count++; }else if(count > 0) { count--; }else { num = temp; } } return num; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); String line = sc.nextLine(); String[] arr = line.split(" "); int result = solution(arr); System.out.println(result); sc.close(); }}
阅读全文
0 0
- 好未来:n个数里出现次数大于等于n/2的数
- n个数里出现次数大于等于n/2的数
- n个数里出现次数大于等于n/2的数
- 《好未来编程题》 输入n个整数,输出出现次数大于等于数组长度一半的数
- 找出出现次数大于等于总数一半的数 (O(1)空间 O(n)时间)
- 摩尔投票法, O(n) O(1) 求出现次数大于n/2,n/3次数的数
- 数组中找到出现次数大于N/K的数
- java 找出n个元素数组中重复次数最多的数(假设出现次数大于n/2)
- 有序数组长度为N 元素出现的长度为 大于等于 N 除 4 的最小的数
- 欧拉函数,求小于等于n 的数里与 n 互质的数的个数
- N个数中,1出现的次数
- Majority Element II 寻找数组中出现次数大于n/3的数
- 笔试面试算法经典-找到数组中出现次数大于N/k的数(Java)
- C++实现数组中找到出现次数大于N/K的数
- 数组与矩阵---在数组中找到出现次数大于一半(N/K)的数
- 将一个整数M分成N个数相加的和,要求每个数至少要大于等于1
- 《好未来编程题》n个数里最小的k个
- 在数组中找到次数大于N/K的数
- vector和list 的区别
- bzoj 1211[HNOI2004]树的计数
- Spring的AOP用法
- unity3d中让物体显示和隐藏
- JavaSE XML操作
- 好未来:n个数里出现次数大于等于n/2的数
- 【codevs1159】最大全0子矩阵(悬线法)
- laravel5.4+vue+element+vux环境搭建
- N-Queens leetcode java
- spring整合mongodb时出现的错误
- 1020(树状数组,逆序对+离散化)
- Android中图片占用内存的计算
- 目标检测的标注工具--集成环境版本labelImg
- SpringMVC的配置文件