zoukankan      html  css  js  c++  java
  • 网易2017春招笔试真题编程题集合(4)——消除重复元素

    时间限制:1秒

    空间限制:32768K

    小易有一个长度为n序列,小易想移除掉里面的重复元素,但是小易想是对于每种元素保留最后出现的那个。小易遇到了困难,希望你来帮助他。 
    输入描述:
    输入包括两行:
    第一行为序列长度n(1 ≤ n ≤ 50)
    第二行为n个数sequence[i](1 ≤ sequence[i] ≤ 1000),以空格分隔
    输出描述:
    输出消除重复元素之后的序列,以空格分隔,行末无空格
    输入例子:
    9
    100 100 100 99 99 99 100 100 100
    输出例子:
    99 100

    代码:方法一
    package pro01;
    import java.util.*;
    //思路:一、要移除重复元素,用TreeSet集合即可,因为它的add方法只添加不重复的元素
    //      二、要保留最后出现的那个,倒着顺序添加就可以了
    //      三、因为TreeSet还有排序的功能,所以不能添加完后再输出。而是每添加一个,将这个元素再存到另一个ArrayList里面
    public class Main{
        public static void main(String[] args) {
            Scanner sc=new Scanner(System.in);
            while(sc.hasNext()){
                int n=sc.nextInt();//序列长度n
                int[] sequence=new int[n];
                for(int i=0;i<n;i++){
                    sequence[i]=sc.nextInt();
                }
                Set<Integer> set=new TreeSet<Integer>();
                List<Integer> list=new ArrayList<Integer>(); 
                for(int i=n-1;i>=0;i--){//倒序添加
                    if(set.add(sequence[i])){
                        list.add(sequence[i]);
                    }
                }
                for(int i=list.size()-1;i>0;i--)//再倒序输出
                    System.out.print(list.get(i)+" ");
                System.out.println(list.get(0));
            }
            sc.close();
        }
    }

    方法二:

    package pro01;
    import java.util.*;
    //思路:一、用ArrayList即可,不过要倒序添加,且要判断有重复元素时不添加(ArrayList有contains方法),最后再倒序输出
    public class Main{
        public static void main(String[] args) {
            Scanner sc=new Scanner(System.in);
            while(sc.hasNext()){
                int n=sc.nextInt();//序列长度n
                int[] sequence=new int[n];
                for(int i=0;i<n;i++){
                    sequence[i]=sc.nextInt();
                }
                List<Integer> list=new ArrayList<Integer>(); 
                for(int i=n-1;i>=0;i--){//倒序添加
                    if(!list.contains(sequence[i])){
                        list.add(sequence[i]);
                    }
                }
                for(int i=list.size()-1;i>0;i--)//再倒序输出
                    System.out.print(list.get(i)+" ");
                System.out.println(list.get(0));
            }
            sc.close();
        }
    }
  • 相关阅读:
    Minimum Depth of Binary Tree leetcode java
    Maximum Depth of Binary Tree leetcode java
    Symmetric Tree leetcode java
    Same Tree leetcode java
    Binary Tree Postorder Traversal leetcode java
    Binary Tree Preorder Traversal leetcode java
    Binary Tree Inorder Traversal leetcode java
    Combinations leetcode java
    一键清除Centos iptables 防火墙所有规则
    阿里云centos7.7x64安装open,并配置ip转发和nat伪装
  • 原文地址:https://www.cnblogs.com/dengyt/p/6908092.html
Copyright © 2011-2022 走看看