360笔试

Java 2018-08-29


这道题想了下还有种方法

import java.util.*;

/**
 * Created by Administrator on 2018/8/29.
 */
public class Test3 {

    public static void main(String[] args) {
        Scanner cin=new Scanner(System.in);
        int n=cin.nextInt();
        int m=cin.nextInt();
        int[] count=new int[n];
        for (int i = 0; i < count.length; i++) {
            count[i]=cin.nextInt();
        }
        int ques=cin.nextInt();
        int[][] visit=new int[ques][2];
        for (int i = 0; i < ques; i++) {
            visit[i][0]=cin.nextInt();
            visit[i][1]=cin.nextInt();
        }
       List<Integer> list= getList(n,m,count,visit);
        Iterator it=list.iterator();

       while (it.hasNext()){
           System.out.println(it.next());
       }
    }

    public static List<Integer> getList(int n,int m,int[] count,int[][] visit){
        List<Integer> res=new ArrayList<>();
        for(int i=0;i<visit.length;++i){//开始小红的Q个问题
            Set<Integer> set=new HashSet<>();//因为记录小明看花的种类,重复的不算,所以用set
            for (int j = visit[i][0]-1; j <visit[i][1]-1 ; j++) {//j从小红的问的第l次到r次,减一是因为下标从0开始
                set.add(count[j]);//第j次所对应的count[j]的值,也就是小明看花的种类:count[j]
            }
            res.add(set.size());//set.size()也就是小明看过的种类总数
        }
        return res;
    }

}

本文由 方方無 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论

shijiebei 365bet manbetx 188bet xinshui caipiao 95zz tongbaoyule beplay 88bifa 18luck betway bwin hg0088 aomenjinshayulecheng ca88 shenbotaiyangcheng vwin w88 weide