找水王
一.题目:
找出在贴吧中真正的水王(发帖及回帖数超过所有帖子的一半),时间复杂度小于等于O(n);
二.设计思想:
水王的帖子超过一半,所以从头开始遍历,如果名字相同,就将两个存在同一个数组,最后比较名字相同最多的就是水王。
三.代码:
package shui; import java.util.Scanner; public class shui { public static void main(String[] args) { int shu[]=new int[100]; int k=0; Scanner scanner=new Scanner(System.in); System.out.println("请输入ID:"); String a=scanner.next(); if(a.equals("#")) System.out.println("您什么都没有输入,故没有水王!"); else { shu[k]=Integer.parseInt(a); k++; a=scanner.next(); while(!a.equals("#")) { shu[k]=Integer.parseInt(a); k++; a=scanner.next(); } System.out.println("水王的ID为:"+zhao(shu,k)); } } public static int zhao(int[] a,int k) { int l=k; int n=0; boolean nn=false; for(int i=l-1;i>=0;i=i-2) { for(int j=i-1;j>=0;j--) { if(a[i]!=a[j]) { if(j!=i-1) a[j]=a[i-1]; } else { nn=true;n=a[i]; } } if(nn==true) break; } n=a[0]; return n; } }
四.实验截图: