找水王

一、设计思路:

每次删除两个不同的ID(不管是否包含水王的ID),那么,在剩下的ID列表中,水王ID出现的次数仍然超过总数的一半。可以通过不断重复这个过程,直到只剩下一个id。这就是水王的id:

二:实验代码:

package shuzu;

public class SW {
    public static void main(String[] args) {
    String[] ids = {"W","W","S","H","W","W"};
    System.out.println("水王的id是 "+find(ids));

}

public static String find(String[] id){
    if(id == null){
        System.out.println("请输入id列表");
        return null;
    }            
    int n = id.length;
    String SW= null;
    int ntimes,i;
    for(i = ntimes = 0;i<n;i++){
        if(ntimes == 0){
            SW = id[i];
            ntimes = 1;
        }
        else{
            if(SW == id[i])
                ntimes ++;
            else 
                ntimes --;
        }
    }
    return SW;
    
    
}
}
View Code

三:实验截图:

四:个人总结

思维转换还是有点慢,直到看到同学的代码。

原文地址:https://www.cnblogs.com/hanzhu/p/5503104.html