题解 | #火车摆放#

火车摆放

https://ac.nowcoder.com/acm/contest/44482/B

B题,看到很多大佬的线段树做法,补一个TreeSet的做法

set记录未摆出来的火车

public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int m=sc.nextInt();
		TreeSet<Integer> set=new TreeSet<Integer>();
		for(int i=1;i<=n;i++) {
			set.add(i);
		}
		for(int i=0;i<m;i++) {
			int op=sc.nextInt();
			int x=sc.nextInt();
			if(op==1) {
				if(set.contains(x)) {
					set.remove(x);
				}
			}
			else if(op==2) {
				set.add(x);
			}
			else {
				if(set.contains(x)) {
					System.out.println(0);
					continue;
				}
				Integer next=set.ceiling(x);
				if(next==null) {
					System.out.println(n-x+1);
				}
				else {
					System.out.println(next-x);
				}
			}
		}
		
		
	}
全部评论

相关推荐

点赞 评论 收藏
转发
4 收藏 评论
分享
牛客网
牛客企业服务