设计思想
每次删除两个不同的ID,不管是否包含水王的ID,那么在剩下的ID列表中出现的次数仍是超过半数。将问题简化。
代码实现
public class test { static public int find(int ID[] ,int n) { int kw=0;//储存结果 int number=0; for(int i=0;i<n;i++) { if(number==0) { kw= ID[i]; number= 1; } else { if(ID[i] ==kw)//相同则比较下一个数 number++; else //不同 number--; } } return kw; } public static void main(String[] args) { // TODO Auto-generated method stub int id[] = {1,2,4,4,4,2,2,4}; int ID = find(id, 8); System.out.println("水王的ID号是:"+ID); } }
实现截图
个人总结
开始的设计思路是最麻烦的进行各个ID分贝统计出现次数。这样使问题便的复杂。
在老师提供的设计思路上进行思考,得到现有的思想。自己还需要多思考,是自己思路便的更加灵活。