日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

我的日程安排表(理解代码)学习记录Java

發(fā)布時間:2023/12/18 java 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 我的日程安排表(理解代码)学习记录Java 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一.直接遍歷比較簡單,主要是找到時間段是不是可以預(yù)定的時間,即對于集合中已有的元素(有沒有元素都一樣)進(jìn)行遍歷比較,任意拿到一個集合元素時[left, right) 與 [start, end)需要一個預(yù)定條件 ==> left >= end || start >= right 那么可知條件非為 ==> left < end && start < right, 此時產(chǎn)生交集,不可加入其中,返回false。

class MyCalendar {List<int[]> booked;public MyCalendar() {booked = new ArrayList<int[]>(); }public boolean book(int start, int end) {for(int[] arr : booked){int left = arr[0], right = arr[1];if (left < end && start < right){return false;}}booked.add(new int[]{start, end});return true;} }/*** Your MyCalendar object will be instantiated and called as such:* MyCalendar obj = new MyCalendar();* boolean param_1 = obj.book(start,end);*/

二.二分查找,首先通過重寫比較器,指定大小規(guī)則,即按照集合元素?cái)?shù)組第一個元素大小進(jìn)行比較升序。此時尋找大于或者等于end的元素[left1, right1)和前一個集合[left2, right2),那么條件為right2 <= start < end <= left1,可以預(yù)定 ==> 當(dāng)找到比end大或者等于的元素時,看前一個元素的right2是否比start小,滿足就可以預(yù)定,其他情況同理,代碼中舉了兩個例子,希望可以幫助您的理解。

class MyCalendar {TreeSet<int[]> booked;public MyCalendar() {// 比較器重寫 按集合數(shù)組第一個元素大小進(jìn)行升序booked = new TreeSet<int[]>((o1, o2) -> o1[0] - o2[0]); }public boolean book(int start, int end) {// 集合為空,直接預(yù)訂if (booked.isEmpty()){booked.add(new int[]{start, end});return true;}// 假設(shè)集合中已有[[10, 20]] ,現(xiàn)存儲[15, 27];// 假設(shè)集合中已有[[10, 20]], 現(xiàn)存儲[5, 10];// 大于等于end的第一個區(qū)間為[l1,r1),前一個區(qū)間[l2,r2);預(yù)定條件:r2 <= start < end <= l1// 臨時數(shù)組,存儲當(dāng)前end時間// temp = [15, 0]// temp = [5, 0]int[] temp = {end, 0};// ceiling(E e)返回此集中大于或等于(以重寫的比較器比較)給定元素的最小元素,或者如果沒有此類元素。null// 獲取l1// arr = null (15 > 10 沒有比給定元素大于等于的元素)// arr = [10, 20] (5 < 10 存在比給定元素大于等于的元素)int[] arr = booked.ceiling(temp);// last()返回此集中當(dāng)前的最后一個(最高)元素。// lower(E e)返回此集中嚴(yán)格小于給定元素的最大元素,或者如果沒有此類元素。null// 獲取r2 ,prev存在兩種情況:集合中元素沒有比end大 ==> 獲取當(dāng)前最大元素?cái)?shù)組;存在比end大的元素 ==> 獲取前一個元素?cái)?shù)組// arr 為空, prev = [10, 20];// arr不為空, prev = null// int[] prev = arr == null ? booked.last() : booked.lower(arr);// first()返回此集中當(dāng)前第一個(最低)元素。// arr 與 [10, 20]不匹配 false || [10, 20]中20 > 15 false ==> false// arr 與 [10, 20]匹配 true ==> true加入集合if (arr == booked.first() || booked.lower(temp)[1] <= start){booked.add(new int[]{start, end});return true;}return false;} }/*** Your MyCalendar object will be instantiated and called as such:* MyCalendar obj = new MyCalendar();* boolean param_1 = obj.book(start,end);*/

總結(jié)

以上是生活随笔為你收集整理的我的日程安排表(理解代码)学习记录Java的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲人网站 | 一区二区三区日韩欧美 | 日本少妇激三级做爰在线 | 天天影视亚洲 | 国产精品亚洲无码 | 免费av的网站 | 9色视频在线观看 | av亚洲在线观看 | 亚洲欧美在线成人 | 最新中文字幕第一页 | www.99色| 久久久久久无码精品人妻一区二区 | 久久亚洲av永久无码精品 | 国产激情网| 天天插天天搞 | www.我爱av | jizzjizz黄大片| 粉嫩av一区二区夜夜嗨 | 影音先锋在线播放 | 国产三级91| 成人区一区二区 | 一级绝黄 | 北京少妇xxxx做受 | 色综合色综合 | 91视频在线| 国产不卡网 | 日韩国产一区 | 国产春色 | 尤物视频最新网址 | 免费在线视频观看 | 成人h动漫精品一区二区无码 | 可以免费看毛片的网站 | 殴美一级片| 黄色的网站免费观看 | 巨胸喷奶水www久久久免费动漫 | 精品爆乳一区二区三区 | 轮番上阵免费观看在线电影 | 中文字幕人妻一区二区在线视频 | 手机天堂网 | 亚洲av人无码激艳猛片服务器 | 亚洲精品一区二区三区影院忠贞 | 亚洲欧美日韩精品一区 | 丰满岳妇乱一区二区三区 | 亚洲一本在线观看 | 射射色| 成人极品 | 中文字幕一级二级三级 | 蜜臀av在线观看 | 天美麻花果冻视频大全英文版 | 亚洲色成人www永久网站 | 香蕉毛片 | 96免费视频 | 亚洲永久免费av | 免费成人激情视频 | 丁香婷婷成人 | 成人激情电影在线观看 | 女人张开双腿让男人捅 | 日韩大片一区二区 | 婷婷色一区二区三区 | 久久久久亚洲av无码专区桃色 | 国产成人精品亚洲日本在线观看 | 97成人免费| 日本熟妇色xxxxx日本免费看 | 国产农村熟妇videos | 欧美14sex性hd摘花 | 免费成人黄色av | a视频在线 | 色女人综合 | 九九热久久免费视频 | 男人天堂最新网址 | 亚洲大尺度网站 | 欧美日韩色综合 | 91免费成人 | 久久久久亚洲AV成人无在 | 调教驯服丰满美艳麻麻在线视频 | 精品女同一区二区三区 | 久久久精品99| 一级做a爱片久久 | 欧美在线一 | 日本免费不卡 | 久久99精品久久久久久园产越南 | 啪啪啪毛片| 丰满人妻在公车被猛烈进入电影 | www在线视频 | 亚洲一区二区电影 | 久久久精品视频在线 | 艹男人的日日夜夜 | 中文字幕在线观看视频免费 | 午夜色片| 欧美黄色xxx| 亚洲性片 | 国产成人精品免费看视频 | 看片免费黄在线观看入口 | 国产精品色在线网站 | 欧美日韩在线国产 | 嫩草导航 | 国产欧美一区二区精品性色超碰 | 黑人干日本少妇 | 国产伦精品一区二区三区视频孕妇 |