630管道
题目描述
小C最近在学习数据结构,遇到了一个很有趣的问题:有一个长长的管道,管道只有右边的一个口,左边的口被堵死了。小C会往右边不断的往里面加数字,数字的范围是0-9,有三个神奇的数字分别是“6”,“3”,“0”,无论这三个数字的顺序,如果这三个数字碰到一起就会消失。比如现在管道中有1,2,3,3,6。这时又加了一个0进来,管道中的数字就变成了1,2,3,小C想知道他加完之后,管道中还剩下几个数字。
输入
输入有两行。
第一行是一个整数n(1<=n<=1000)
每二行会输入n个数字,每个数字用空格隔开,代表小C按顺序往管道里面放的数字。
输出
输出一个整数,代表管道中还剩下多少数字。
样例输入
8
1 2 3 3 6 0 0 6
样例输出
2
代码实现
package renren;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
List<Integer> list = new ArrayList<>();
for (int i = 0; i < n; i++) {
list.add(sc.nextInt());
}
while (list.contains(0) && list.contains(3) && list.contains(6)) {
for (int i = 0; i <= list.size() - 3; i++) {
if ((list.get(i) == 6 && list.get(i + 1) == 3 && list.get(i + 2) == 0) || (list.get(i) == 6 && list.get(i + 1) == 0 && list.get(i + 2) == 3) || (list.get(i) == 3 && list.get(i + 1) == 6 && list.get(i + 2) == 0) || (list.get(i) == 0 && list.get(i + 1) == 3 && list.get(i + 2) == 6) || (list.get(i) == 0 && list.get(i + 1) == 6 && list.get(i + 2) == 3) || (list.get(i) == 3 && list.get(i + 1) == 0 && list.get(i + 2) == 6)) {
list.remove(i + 2);
list.remove(i + 1);
list.remove(i);
}
}
}
System.out.println(list.size());
}
}
大黄玩手机
题目描述
大黄在打一款手机游戏"像素地牢"时,由于没有使用外挂,所以他很悲催的一次次失败。
于是他找到了你,想让你帮忙。
已知这款游戏里有n个怪物,对于每个怪物存在一个威胁值p,现在大黄想让你给这些怪物从小到大排个序,一遍确定他刷怪的顺序。
可是怪物实在太多辣!他想让你在排序的同时,顺便去下重。
大黄的游戏生涯全靠你了!所以你必须在1s内回答。
输入
第一行一个n,1<=n<=10000
第2-n+1个每行1个正整数,表示n个怪的威胁值。
对于30%的数据,1<=p<=10^6;
对于50%的数据,1<=p<=10^18;
对于100%的数据,1<=p<=10^100。
输出
一行一些正整数(个数小与等于n),用空格隔开,表示去重后的结果
样例输入
10
5
5
4
4
3
3
2
2
1
1
样例输出
1 2 3 4 5
代码实现
package renren;
import java.util.*;
public class Main2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
List<Long> list = new ArrayList<>(n);
for (int i = 0; i < n; i++) {
list.add(sc.nextLong());
}
Set set = new HashSet(list);
List resList = new ArrayList(set);
Collections.sort(resList);
for (int i = 0; i < resList.size() - 1; i++) {
System.out.print(resList.get(i) + " ");
}
System.out.println(resList.get(resList.size() - 1));
}
}