标签:
题目:
1 package com.java.lianxi; 2 3 public class lianxi7 { 4 public static void main(String arg[]) 5 { 6 int[] ids = {1,2,3,1,1,1,2,2,2,4,1,1,1,3,3,1,1,1}; 7 System.out.println("水王的ID是"+findshuiwang(ids)); 8 } 9 public static int findshuiwang(int[] id) 10 { 11 int n = id.length; 12 int shuiwang = 0; 13 int count=0; 14 for(int i=0;i<n;i++) 15 { 16 if(count == 0) 17 { 18 shuiwang = id[i]; 19 count = 1; 20 } 21 else 22 { 23 if(shuiwang == id[i]) 24 count ++; 25 else 26 count --; 27 } 28 } 29 return shuiwang; 30 } 31 }
三、截图
四、心得体会
拿到这道题,我刚开始想到的就是编历所有id,并对每个ID进行计数,但是不太容易实现,要用到结构体,后来老师提到了遍历然后排序,中间项肯定是水王ID,可是时间复杂度为n*n,为了降低时间复杂度,老师提示用消消乐的思想,后来我们就想到了如何解决。一道题目有好多种解法,我们应当拓宽思路,以后还要多练习写程序,孰能生巧。
标签:
原文地址:http://www.cnblogs.com/maximumminimum/p/4445582.html