网易2017春招笔试真题编程题集合——4.消除重复元素
2018-03-18 12:50
423 查看
Question
小易有一个长度为n序列,小易想移除掉里面的重复元素,但是小易想是对于每种元素保留最后出现的那个。小易遇到了困难,希望你来帮助他。
输入描述:
输入包括两行:
第一行为序列长度n(1 ≤ n ≤ 50)
第二行为n个数sequence[i](1 ≤ sequence[i] ≤ 1000),以空格分隔
输出描述:
输出消除重复元素之后的序列,以空格分隔,行末无空格
输入例子:
9
100 100 100 99 99 99 100 100 100
输出例子:
99 100
基本思想:
使用Scanner接收控制台输入
难点应该是要求中的对于每种元素保留最后出现的那个这一句:
像出现如下情况时:100 100 99 11 11 11,移除重复元素必然是:100 99 11
而若出现这种情况:100 100 100 99 99 99 100 100 100,为满足 对于每种元素保留最后出现的那个 这一要求,三个99前后都出现了100,这时只能保留99后面的100,即 99 100;
只需从后往前遍历给定的数组即可满足对于每种元素保留最后出现的那个这一要求,用一个ArrayList保存合并重复元素后的集合,每往前遍历一个元素先判断该元素是否已经存在集合中,不存在就添加到集合中。
遍历结束要将集合倒序输出,因为遍历的时候对目标数组的遍历是从后往前的,加入到集合的顺序也是从后往前的,而输出时应该从前往后输出。
java代码如下:
小易有一个长度为n序列,小易想移除掉里面的重复元素,但是小易想是对于每种元素保留最后出现的那个。小易遇到了困难,希望你来帮助他。
输入描述:
输入包括两行:
第一行为序列长度n(1 ≤ n ≤ 50)
第二行为n个数sequence[i](1 ≤ sequence[i] ≤ 1000),以空格分隔
输出描述:
输出消除重复元素之后的序列,以空格分隔,行末无空格
输入例子:
9
100 100 100 99 99 99 100 100 100
输出例子:
99 100
基本思想:
使用Scanner接收控制台输入
难点应该是要求中的对于每种元素保留最后出现的那个这一句:
像出现如下情况时:100 100 99 11 11 11,移除重复元素必然是:100 99 11
而若出现这种情况:100 100 100 99 99 99 100 100 100,为满足 对于每种元素保留最后出现的那个 这一要求,三个99前后都出现了100,这时只能保留99后面的100,即 99 100;
只需从后往前遍历给定的数组即可满足对于每种元素保留最后出现的那个这一要求,用一个ArrayList保存合并重复元素后的集合,每往前遍历一个元素先判断该元素是否已经存在集合中,不存在就添加到集合中。
遍历结束要将集合倒序输出,因为遍历的时候对目标数组的遍历是从后往前的,加入到集合的顺序也是从后往前的,而输出时应该从前往后输出。
java代码如下:
public class GetOffer4 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int size = sc.nextInt(); sc.nextLine(); String str = sc.nextLine(); String[] arr = str.split(" "); int k = 0; int[] newArr = new int[size]; for (String value : arr) { newArr[k++] = Integer.valueOf(value); } ArrayList<Integer> list = new ArrayList<Integer>(); // 从后往前遍历,如果重复不添加, for (int i = newArr.length - 1; i >= 0; i--) { if (!list.contains(newArr[i])) { list.add(newArr[i]); } } // 倒序遍历集合 for (int i = list.size() - 1; i >= 0; i--) { if (i == 0) { System.out.print(list.get(i)); } else { System.out.print(list.get(i) + " "); } } } }
相关文章推荐
- 网易2017春招笔试真题编程题集合——4.消除重复元素
- 消除重复元素--网易2017春招实习笔试编程题4
- 名企笔试:网易游戏2017招聘笔试题(消除重复元素)
- 【网易2017实习生编程题】赶去公司 调整队形 消除重复元素
- 网易2017春招笔试真题编程题集合
- 牛客网-网易2017春招笔试真题编程题集合-解题思路及源码
- 网易2017春招笔试真题编程题集合——2.优雅的点
- 网易2017春招笔试——消除重复元素
- 网易2017春招笔试真题编程题集合
- 网易2017春招[编程题]消除重复元素
- 网易2017春招笔试真题编程题集合--Python
- 网易2017春招笔试真题编程题集合题解
- 网易2017春招笔试真题编程题集合--工作安排
- 2017 网易 [编程题] 消除重复元素
- 网易2017春招笔试真题编程题集合--魔力手环
- 百度2017春招笔试真题编程题集合:度度熊回家 [python]
- 百度2017春招笔试真题编程题集合之买帽子
- 网易2017春招笔试真题集合
- 百度2017春招笔试真题编程题集合-3
- 1--百度2017春招笔试真题编程题集合--买帽子(Python)