课堂测试之找水王

在找水王的过程中,一般会用到二重循环,这样使得时间复杂度会变大,那么我们能不能用一次遍历将水王找出来呢?

源码:

package test;
public class shuiwang1 {
 /**
  * @param args
  */
 public static void main(String[] args)
 {
  String[] ids = {"003","001","dc","001","001","001","002"};
  System.out.println(find(ids));
 
 }
 
 public static String find(String[] id)
 {
      int n=id.length;
      String findid=null;
      int i,cishu;
      for(i=cishu=0;i<n;i++)
      {
       if(cishu==0)
       {
       findid=id[i];
       cishu=1;
       }
       else
       {
       if(findid==id[i]) cishu++;
       else cishu--;
       }
      }
      return findid;
     
 }
}
posted @ 2019-05-30 19:28  Double晨  阅读(180)  评论(0编辑  收藏  举报