【Java】数组中出现次数超过一半的数字

以你之姓@ 2021-12-23 23:31 347阅读 0赞

题目描述
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。
这题思路挺简单的,用了双for直接解决

  1. package 牛客;
  2. import java.lang.reflect.Array;
  3. import java.util.Arrays;
  4. public class 数组中出现次数超过一半的数字 {
  5. public static int MoreThanHalfNum_Solution(int[] array) {
  6. if (array == null || array.length == 0) {
  7. return 0;
  8. }
  9. Arrays.sort(array);
  10. int result=0;
  11. for(int i=0;i<array.length;i++) {
  12. result=array[i];
  13. int count=0;
  14. for (int j=i;j<array.length;j++) {
  15. if (array[j] == result) {
  16. count++;
  17. }else {
  18. break;
  19. }
  20. }
  21. if (count*2<=array.length){
  22. result=0;
  23. continue;
  24. }else{
  25. return result;
  26. }
  27. }
  28. return result;
  29. }
  30. public static void main(String[] args) {
  31. int []a={
  32. 1,2,3,2,4,2,5,2,3};
  33. System.out.println(MoreThanHalfNum_Solution(a));
  34. }
  35. }

在这里插入图片描述
在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,347人围观)

还没有评论,来说两句吧...

相关阅读