LeetCode(多线程)- 1279. 红绿灯路口
题目链接:点击打开链接
题目大意:略。
解题思路:略。
相关企业
- 亚马逊(Amazon)
- 高盛集团(Goldman Sachs)
- 苹果(Apple)
- 微软(Microsoft)
- 谷歌(Google)
- 彭博(Bloomberg)
- 阿里巴巴
- 字节跳动
AC 代码
class TrafficLight {private Semaphore greenLight; // 红绿灯遥控器private boolean road1CanGo; // 表示道路1是绿灯private boolean road2CanGo; // 表示道路2是绿灯public TrafficLight() {this.greenLight = new Semaphore(1, true);this.road1CanGo = true;this.road2CanGo = false;}public void carArrived(int carId, // ID of the carint roadId, // ID of the road the car travels on. Can be 1 (road A) or 2 (road B)int direction, // Direction of the carRunnable turnGreen, // Use turnGreen.run() to turn light to green on current roadRunnable crossCar // Use crossCar.run() to make car cross the intersection) {try {// 申请获取遥控器greenLight.acquire(); // 如果当前车道已经是绿灯了,直接通过if ((roadId == 1 && road1CanGo) || (roadId == 2 && road2CanGo)) crossCar.run();else if (roadId == 1 && !road1CanGo) { // 否则,如果道路1不是绿灯,用遥控器变成绿灯turnGreen.run();road1CanGo = true;road2CanGo = false;crossCar.run();} else if (roadId == 2 && !road2CanGo) { // 如果道路2不是绿灯,用遥控器变成绿灯turnGreen.run();road2CanGo = true;road1CanGo = false;crossCar.run();}// 最后把遥控器归还greenLight.release();} catch (InterruptedException e) {e.printStackTrace();}}
}
LeetCode(多线程)- 1279. 红绿灯路口相关推荐
- LeetCode刷题 多线程编程九则 | 1188. 设计有限阻塞队列 1242. 多线程网页爬虫 1279. 红绿灯路口
目录 1114. 按序打印 解法 1115. 交替打印FooBar 解法 1116. 打印零与奇偶数 解法 1117. H2O 生成 解法 1118. 设计有限阻塞队列 解法 1195. 交替打印字符 ...
- 畅游多线程之红绿灯路口
1279 红绿灯路口 每条路在路口前都有一个红绿灯.红绿灯可以亮起红灯或绿灯.绿灯表示两个方向的车辆都可通过路口. 红灯表示两个方向的车辆都不可以通过路口,必须等待绿灯亮起. 两条路上的红绿灯不可以同 ...
- 1279 红绿灯路口
题目描述: 这是两条路的交叉路口.第一条路是 A 路,车辆可沿 1 号方向由北向南行驶,也可沿 2 号方向由南向北行驶.第二条路是 B 路,车辆可沿 3 号方向由西向东行驶,也可沿 4 号方向由东向西 ...
- 【LeetCode-多线程】1279. 红绿灯路口
目录 一.题目 二.解决 1.synchronized 2.CAS 3.Lock 4.信号量 三.参考 一.题目 这是两条路的交叉路口.第一条路是 A 路,车辆可沿 1 号方向由北向南行驶,也可沿 2 ...
- 坡道行驶电动小车_事发红绿灯路口!东莞一女子骑电动滑板车被撞致颅内出血…...
东莞的小伙伴们应该都在路上见过电动滑板车一些上班族平时都用它代步但大家在享受电动滑板车的便捷时一定要提高安全意识否则就容易发生意外!事件回顾近日在东莞厚街S256省道濠畔红绿灯路口发生一起电动滑板车与 ...
- 科目三 临时停车 与 红绿灯 路口 LTS
科目三 临时停车 与 红绿灯 路口 LTS 临时停车 ,需要双闪不 昨天考挂了,绿灯还有12妙没有过,安全员判定不合格 教练说十秒内可以停/ 2挡不超30码就不会出现档位车速不配色.红绿灯也没规定挂空 ...
- LeetCode题解(1279):红绿灯路口(Python)
题目:原题链接(简单) 标签:多线程 解法 时间复杂度 空间复杂度 执行用时 Ans 1 (Python) O(N)O(N)O(N) O(1)O(1)O(1) 52ms (88.89%) Ans 2 ...
- Leetcode_1279_红绿灯路口_多线程
用一个布尔型变量保存目前红绿灯状态. 如果目前的车能通过红绿灯,就让他通过. 如果不能,改变灯的状态. class TrafficLight {boolean isAGreen; public Tra ...
- LeetCode-1279. 红绿灯路口
这是两条路的交叉路口.第一条路是 A 路,车辆可沿 1 号方向由北向南行驶,也可沿 2 号方向由南向北行驶.第二条路是 B 路,车辆可沿 3 号方向由西向东行驶,也可沿 4 号方向由东向西行驶. 每条 ...
最新文章
- 如何用极致业务基础平台做一个通用企业ERP系列之三启用期间管理设计
- 电脑出现kernelbase.dll错误的两种解决方法
- oracle自带调优,oracle 参数调优
- Python: ufunc ‘bitwise_xor‘ not supported for the input types,....
- leveldb登山之路——cache
- 北京发布全国首个“水下物联网”系统
- 【Selenium2】【Shell】
- 洛谷—— P2251 质量检测
- LwIP协议栈之数据包pbuf
- MongoDB安装Python操作MongoDB
- PgAdmin导入导出单表数据---解决PgAdmin导入单表数据报错乱码问题
- coap 返回版本信息_CoAP协议详解
- 动态壁纸-软件制作-教程
- 2020年书法落款_散文书法落款-2020年书法落款怎么写?
- AndroidO(8.0) 和 Android P(9.0)
- handle java
- Window下python安装metis
- 【字符串】字符串长度与字节长度
- Win10 下安装Mathtype6.9 + office2013+EndNote-x8
- re模块 正则表达式