题解 | #火车摆放#

火车摆放

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);
				}
			}
		}
		
		
	}
全部评论

相关推荐

Southyeung:我说一下我的看法(有冒犯实属抱歉):(1)简历不太美观,给我一种看都不想看的感觉,感觉字体还是排版问题;(2)numpy就一个基础包,机器学习算法是什么鬼?我感觉你把svm那些写上去都要好一点。(2)课程不要写,没人看,换成获奖经历;(3)项目太少了,至少2-3个,是在不行把网上学习的也写上去。
点赞 评论 收藏
分享
牛客刘北:如果暑期实习是27届的话,你要晚一年才会毕业,企业为什么会等你呢?要搞清时间逻辑呀!27届现在实习只能是在暑假实习,这是日常实习,不是暑期实习。所以多去投日常实习吧,暑期实习肯定不会要你的
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务