PAT-The Dominant Color (20)

来源:互联网 发布:青岛三利集团知乎 编辑:程序博客网 时间:2024/06/05 20:41
题意:
从所给的数中做出超过一半的那个数字
解答:
众数问题,从m * n个数中找出出现多于一半的数——保证存在。
本质: 同时删掉两个不同的数,众数不变。 于是我们随便记录一个数x, 来一个数 y, 和x不同的话就把x ,y都扔了,相当于扔掉两个不同的数,和x相同的话,就把计数器加1。
所以操作简化为
(1) x出现次数的计数器加1
(2) x出现次数的计数器减1
具体java代码:
import java.util.*;public class Main{    public static void main(String[] args){        Scanner in=new Scanner(System.in);        int M=in.nextInt();        int N=in.nextInt();        int t=0;        int result=0;        for(int i=0;i<N;i++){            for(int j=0;j<M;j++){                int temp=in.nextInt();                if(t==0){                   result=temp;                }                if(temp==result)                    t++;                else t--;                       }                     }        System.out.println(result);    }}


0 0
原创粉丝点击