精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

遇到兩次的筆試題:求連續區間

開發 前端
最近除了準備華為面試外,也在面其他公司,每一輪面試都會有幾道筆試題。這些筆試題里面難免有類型相似的。

[[432661]]

最近除了準備華為面試外,也在面其他公司,每一輪面試都會有幾道筆試題。這些筆試題里面難免有類型相似的。

最近我就遇到兩道類型相似的題,都是求連續區間的。

雖然不是啥算法題,但還是比較考驗邏輯能力的,所以這篇文章來梳理一下。

下面是題目,大家可以看下有啥思路沒,就當這是在面試了??。

第一道

輸入是 1,2,3,5,7,8,10 輸出要求是 1~3 5 7~8 10

第二道

將48位的時間位圖格式化成字符串

要求:寫一個函數timeBitmapToRanges,將下述規則描述的時間位圖轉換成一個選中時間區間的數組。

規則描述:

將一天24小時按每半小劃分成48段,我們用一個位圖表示選中的時間區間,例如110000000000000000000000000000000000000000000000, 表示第一個半小時和第二個半小時被選中了,其余時間段都沒有被選中,也就是對應00:00~01:00這個時間區間。一個位圖中可能有多個不連續的 時間區間被選中,例如110010000000000000000000000000000000000000000000,表示00:00-1:00和02:00-02:30這兩個時間區間被選中了。

示例輸入:"110010000000000000000000000000000000000000000000"

示例輸出:["00:00~01:00", "02:00~02:30"]

第一道題的題解

輸入是 1,2,3,5,7,8,10 輸出要求是 1~3 5 7~8 10

這題明顯是要求出連續區間來,然后格式化成字符串。

當 arr[i+1] 是 arr[i] + 1 的時候,那就是連續的,需要繼續往下找。否則就到了區間的邊界,記錄下區間的起始位置就行。

我們循環一遍數組,把區間 push 到數組里

  1. function calcContinuousRanges(arr) { 
  2.     let continuousRanges = []; 
  3.     let index = 0; 
  4.     while(index < arr.length) { 
  5.         const range = { 
  6.             start: arr[index], 
  7.             end: arr[index
  8.         }; 
  9.         continuousRanges.push(range); 
  10.         index++; 
  11.     } 

但是,如果中間有連續的數字,那區間的 end 要做一下調整:

  1. function calcContinuousRanges(arr) { 
  2.     let continuousRanges = []; 
  3.     let index = 0; 
  4.     while( index < arr.length) { 
  5.         const range = { 
  6.             start: arr[index], 
  7.             end: arr[index
  8.         }; 
  9.         while (index < arr.length && arr[index + 1] === arr[index] + 1) { 
  10.             range.end = arr[index + 1]; 
  11.             index++; 
  12.         } 
  13.         continuousRanges.push(range); 
  14.         index++; 
  15.     } 
  16.     console.log(JSON.stringify(continuousRanges)); 

我們先打印一下 continuousRanges:

  1. calcContinuousRanges([1,2,3,5,7,8,10]); 

連續區間是對的:

之后做下格式化就行

  1. const formatted = continuousRanges.map(({start, end}) => { 
  2.     return start === end ? start : `${start}~${end}`; 
  3. }).join(' '); 

完整代碼如下:

  1. function calcContinuousRanges(arr) { 
  2.     let continuousRanges = []; 
  3.     let index = 0; 
  4.     while( index < arr.length) { 
  5.         const range = { 
  6.             start: arr[index], 
  7.             end: arr[index
  8.         }; 
  9.         while (index < arr.length && arr[index + 1] === arr[index] + 1) { 
  10.             range.end = arr[index + 1]; 
  11.             index++; 
  12.         } 
  13.         continuousRanges.push(range); 
  14.         index++; 
  15.     } 
  16.     // console.log(JSON.stringify(continuousRanges)); 
  17.     const formatted = continuousRanges.map(({start, end}) => { 
  18.         return start === end ? start : `${start}~${end}`; 
  19.     }).join(' '); 
  20.     console.log(formatted); 
  21.  
  22. calcContinuousRanges([1,2,3,5,7,8,10]); 

小結

這道題的思路就是先求出連續區間,然后格式化輸出。連續區間就是判斷 arr[i+1] 和 arr[i] 的關系,如果連續就 index++ 繼續往下找,直到找到區間的結束

第二道題的題解

將48位的時間位圖格式化成字符串

要求:寫一個函數timeBitmapToRanges,將下述規則描述的時間位圖轉換成一個選中時間區間的數組。

規則描述:

將一天24小時按每半小劃分成48段,我們用一個位圖表示選中的時間區間,例如110000000000000000000000000000000000000000000000, 表示第一個半小時和第二個半小時被選中了,其余時間段都沒有被選中,也就是對應00:00~01:00這個時間區間。一個位圖中可能有多個不連續的 時間區間被選中,例如110010000000000000000000000000000000000000000000,表示00:00-1:00和02:00-02:30這兩個時間區間被選中了。

示例輸入:"110010000000000000000000000000000000000000000000"

示例輸出:["00:00~01:00", "02:00~02:30"]

這道題也是連續區間的題。先遍歷一遍時間位圖,找到所有的連續時間段的區間,然后格式化成時間的格式輸出就行。

連續區間的話,如果當前位是 1 就記錄下區間的開始,一直 index++ 找區間的結束,直到不為 1,就記錄下一個連續區間。這樣遍歷完一遍就求出了所有連續區間。

格式化成時間的字符串找規律就行。

我們來寫下代碼。

先找連續區間,如果是 0 就 continue,如果是 1 就記錄下區間的開始,然后找區間的結束,之后記錄下連續區間:

  1. function timeBitmapToRanges(timeBitmap) { 
  2.     let index = 0; 
  3.     let ranges = []; 
  4.     while(index < timeBitmap.length) { 
  5.         if (timeBitmap[index] === '0') { 
  6.             index++; 
  7.             continue
  8.         } 
  9.         let curRange = { start: indexendindex}; 
  10.         while (timeBitmap[index] === '1') { 
  11.             curRange.end = index
  12.             index++; 
  13.         } 
  14.         ranges.push(curRange); 
  15.     } 

測試一下,連續區間是對的:

格式化部分找規律即可。

半小時為單位,所以要乘以 0.5,然后區間的結束要多加個 0.5

  1. ranges.map(range => { 
  2.     let str = 0; 
  3.     return format(range.start * 0.5) + '~' + format(range.end * 0.5 + 0.5); 
  4. }); 

然后格式化的實現分為小時和分鐘兩部分:

小時就是整數部分,個位數要補 0;

分鐘是小數部分,只有 30 和 0 兩種情況。

  1. function format(num) { 
  2.     const left = Math.floor(num); 
  3.     const leftStr =   left < 10 ? '0' + left : left
  4.     const right = num % 1 === 0.5 ? 30 : 0; 
  5.     const rightStr =   right < 10 ? '0' + right : right
  6.     return leftStr + ':' + rightStr; 

經測試,結果是對的:

完整代碼如下:

  1. function timeBitmapToRanges(timeBitmap) { 
  2.     let index = 0; 
  3.     let ranges = []; 
  4.     while(index < timeBitmap.length) { 
  5.         if (timeBitmap[index] === '0') { 
  6.             index++; 
  7.             continue
  8.         } 
  9.         let curRange = { start: indexendindex}; 
  10.         while (timeBitmap[index] === '1') { 
  11.             curRange.end = index
  12.             index++; 
  13.         } 
  14.         ranges.push(curRange); 
  15.     } 
  16.  
  17.     return ranges.map(range => { 
  18.         let str = 0; 
  19.         return format(range.start * 0.5) + '~' + format(range.end * 0.5 + 0.5); 
  20.     }); 
  21.  
  22. function format(num) { 
  23.     const left = Math.floor(num); 
  24.     const leftStr =   left < 10 ? '0' + left : left
  25.     const right = num % 1 === 0.5 ? 30 : 0; 
  26.     const rightStr =   right < 10 ? '0' + right : right
  27.     return leftStr + ':' + rightStr; 
  28.  
  29. console.log(timeBitmapToRanges('110010000000000000000000000000000000000000000000')) 

小結

這道題也是求連續區間再格式化輸出的思路,只是連續區間是通過當前位是否為 1 來判斷的,而且格式化的方式也復雜一些。

總結

 

連續區間的題是我最近遇到兩次的筆試題,雖然變形比較多,連續區間的判斷和格式化的方式都不同,但思路是一致的,都是先求出連續區間,然后格式化輸出。

 

責任編輯:武曉燕 來源: 神光的編程秘籍
相關推薦

2009-05-05 10:03:37

主考官求職筆試題

2021-10-21 11:29:06

勒索軟件攻擊數據泄露

2013-12-18 09:36:33

Fedora 20

2013-05-21 11:22:15

Google+UI設計

2025-11-07 01:45:00

2024-10-16 08:38:37

TCP編號信息

2015-11-03 11:39:18

清華大學OpenStackEasyStack

2011-04-19 17:57:58

筆試題C++

2024-07-15 00:00:00

POST瀏覽器網絡

2021-10-08 11:05:00

Go 切片內存

2023-02-08 15:32:16

云服務中斷微軟

2021-07-26 08:08:56

TCPIP網絡協議

2021-04-30 13:32:17

TCP三次握手網絡協議

2018-08-13 16:19:35

2020-07-21 10:22:28

網絡安全黑客技術

2021-05-13 16:34:20

TCP客戶端

2024-11-21 10:38:10

2018-07-04 13:36:53

程序員項目數據庫
點贊
收藏

51CTO技術棧公眾號

黑丝一区二区三区| 福利片一区二区| 综合婷婷亚洲小说| 999日本视频| 久草国产精品视频| 欧美久久综合网| 欧美一区二区三区免费视频| 99久久国产综合精品五月天喷水| 男操女在线观看| 狠狠网亚洲精品| 91产国在线观看动作片喷水| 貂蝉被到爽流白浆在线观看| 99精品中文字幕在线不卡 | 日韩精品一区二区三区三区免费| 久久久久免费看黄a片app| 最新国产在线观看| 成人丝袜视频网| 国产色视频一区| 国产中文字幕视频| 欧美二区视频| 视频直播国产精品| 中文字幕 亚洲一区| 视频欧美精品| 日本丶国产丶欧美色综合| 亚洲天堂第一区| 电影av在线| 99在线视频精品| 亚洲aa中文字幕| 久久精品五月天| 亚洲精品免费观看| 九九视频这里只有精品| 欧美黄色激情视频| 国产精品男女| 精品嫩草影院久久| 国产欧美一区二| 精品欧美一区二区三区在线观看| 亚洲国产综合色| 日韩 欧美 自拍| av二区在线| 国产亚洲一区字幕| 精品一区二区三区国产| 亚洲精品久久久久久久久久久久久久| 久久精品国产一区二区三| 日韩免费av在线| 久草视频在线观| 国产精品黄色| 欧美人与性动交| 黄色片在线观看网站| 日本道不卡免费一区| 亚洲人永久免费| 性久久久久久久久久| 91蝌蚪精品视频| 精品少妇一区二区三区视频免付费| 视频二区在线播放| 成人国产激情| 欧美日韩国产一区| 不卡的av中文字幕| 亚洲ww精品| 69久久99精品久久久久婷婷 | 欧美a级理论片| 国产精品1区2区在线观看| 中文字幕精品三级久久久| 日韩视频免费| 欧美亚洲另类在线| 日本特级黄色片| 视频在线在亚洲| 热re91久久精品国99热蜜臀| 欧美一区二区三区网站| 鲁大师影院一区二区三区| 日韩美女视频免费看| 国产又粗又猛又黄视频| 爽好多水快深点欧美视频| 国产精品美女www| 中文字幕精品在线观看| 麻豆国产精品777777在线| 91亚洲国产成人久久精品网站| 中文字幕日日夜夜| 国产精品综合久久| 国产精品日韩二区| 免费在线一级视频| 国产精品久久久久久久久久久免费看 | 欧美肥婆姓交大片| 日韩精品一区三区| 蜜乳av另类精品一区二区| 国产精品网红直播| 精品国产av一区二区| 不卡av电影在线播放| 美国av一区二区三区| 春暖花开成人亚洲区| 国产精品沙发午睡系列990531| 性欧美18一19内谢| av在线视屏| 欧美在线不卡视频| 中国老熟女重囗味hdxx| 日本亚洲不卡| 色777狠狠综合秋免鲁丝| 久久黄色免费网站| 天使萌一区二区三区免费观看| 国产深夜精品福利| 亚洲欧美一区二区三| 国产精品女同一区二区三区| 国产女教师bbwbbwbbw| 日韩av影片| 4438x成人网最大色成网站| 国产精品一区二区人妻喷水| 北条麻妃国产九九九精品小说 | 精品国产乱码久久久久久久久| 黄色工厂在线观看| 亚洲成人一区| 国产成人一区二区| 亚洲成人一级片| 国产日韩精品久久久| 欧美激情亚洲天堂| 欧美亚洲二区| 亚洲精品一区中文字幕乱码| 欧美成人精品欧美一| 久久久久免费| 国产嫩草一区二区三区在线观看| 午夜免费播放观看在线视频| 精品成人国产在线观看男人呻吟| 中文字幕免费高清在线| 亚洲电影一级片| 九九热精品在线| 国产在成人精品线拍偷自揄拍| 91在线视频播放| 少妇久久久久久被弄到高潮| 成人黄色免费短视频| 亚洲第一精品久久忘忧草社区| 国产成人在线网址| 久久99伊人| 国产伦精品一区二区三区高清| 美女羞羞视频在线观看| 在线日韩av片| 日本xxx在线播放| 亚洲高清不卡| 鬼打鬼之黄金道士1992林正英| 三级外国片在线观看视频| 欧美丝袜一区二区| 亚洲调教欧美在线| 亚洲婷婷在线| 国产高清在线一区| 超碰在线中文字幕| 日韩精品专区在线影院观看 | 综合视频在线| 91久久精品视频| 欧美尤物美女在线| 欧美日韩精品欧美日韩精品| 天天躁日日躁aaaa视频| 国产精品视区| 欧美日韩国产不卡在线看| 成年男女免费视频网站不卡| 欧美成人aa大片| 免费在线一级片| 国产aⅴ综合色| 久久这里只有精品8| 91精品日本| 午夜精品三级视频福利| 手机看片福利永久| 午夜av一区二区三区| 妖精视频一区二区| 日韩一级网站| 欧美日韩成人一区二区三区| 欧美日韩成人影院| 中日韩午夜理伦电影免费 | 麻豆国产精品777777在线| 亚洲一区3d动漫同人无遮挡| 欧美特黄色片| 欧美成人中文字幕在线| 国产综合视频在线| 污片在线观看一区二区| 粉嫩av蜜桃av蜜臀av| 老司机午夜免费精品视频 | 丰满少妇一区二区三区| 一区二区毛片| 亚洲欧洲久久| 日韩欧美另类中文字幕| 97高清免费视频| 国产区视频在线播放| 欧美色视频一区| 青娱乐免费在线视频| 成人av免费在线播放| 激情网站五月天| 午夜影院欧美| 精品蜜桃传媒| 人人精品久久| 韩国日本不卡在线| 免费理论片在线观看播放老| 欧美日韩视频专区在线播放| 国产高潮国产高潮久久久91 | 一级片久久久久| 国产精品一级片在线观看| 国产高清av在线播放| 狠狠做六月爱婷婷综合aⅴ| 国产伊人精品在线| 草草视频在线| 久久影视电视剧免费网站清宫辞电视| xxxx18国产| 欧美在线免费播放| 久久国产一级片| 日本一区二区免费在线| 国产乱淫av片| 日本大胆欧美人术艺术动态| 国产一区二区三区在线免费| 国产影视一区| 国产精品久久九九| 日韩综合av| 欧美重口另类videos人妖| 美女羞羞视频在线观看| 亚洲精品综合精品自拍| 精品人妻午夜一区二区三区四区 | 国产精品免费视频xxxx| 欧美韩日亚洲| 久久九九亚洲综合| 免费av在线电影| 精品福利一二区| 艳妇乳肉豪妇荡乳av| 婷婷夜色潮精品综合在线| 999精品在线视频| 国产人伦精品一区二区| 亚洲激情 欧美| 精品一区二区在线观看| 欧美变态另类刺激| 欧美freesex交免费视频| 日本欧美精品久久久| 加勒比视频一区| 95av在线视频| 深夜福利亚洲| 国产精品十八以下禁看| 国产日韩电影| 2021国产精品视频| 国产蜜臀av在线播放| 成人97在线观看视频| 爱爱爱免费视频在线观看| 日韩电影免费观看中文字幕| 韩国av永久免费| 91精品国产高清一区二区三区| 中文字幕av免费观看| 色先锋aa成人| 九一国产在线观看| 天天综合天天做天天综合| 激情四射综合网| 亚洲柠檬福利资源导航| 成人欧美一区二区三区黑人一| 久久久国产一区二区三区四区小说| 国产精品九九视频| 成人精品一区二区三区四区 | 五月婷婷六月婷婷| 欧美视频在线免费看| av资源免费观看| 午夜精品久久久久久久久久| 国产亚洲精品女人久久久久久| 亚洲美女偷拍久久| 日韩欧美国产成人精品免费| 国产精品久久久久久户外露出 | 国产v亚洲v天堂无码| 亚洲精品午夜| 国产亚洲精品久久飘花| 老牛国内精品亚洲成av人片| 国产精品制服诱惑| 欧美黑白配在线| 日本一区二区精品| 久久精品不卡| 特色特色大片在线| 国产精品久久| 少妇高潮喷水在线观看| 国产精品久久久久久模特 | 国产综合久久久久影院| 污视频在线观看免费网站| 国产精品性做久久久久久| 国产成人精品综合久久久久99| 国产a精品视频| av无码av天天av天天爽| 中文字幕乱码一区二区免费| www.av免费| 亚洲伊人伊色伊影伊综合网| 国产超碰人人爽人人做人人爱| 欧美性高潮床叫视频| 国产情侣免费视频| 欧美一区永久视频免费观看| 欧美视频一二区| 亚洲亚裔videos黑人hd| 日本高清中文字幕在线| 欧美第一页在线| 日本欧美日韩| 亚洲综合国产精品| 亚洲激情77| www亚洲国产| 一道本一区二区| 色婷婷一区二区三区在线观看| 波多野结衣91| 美国黄色片视频| 亚洲成人高清在线| 中国黄色一级视频| 欧美v国产在线一区二区三区| 你懂的在线观看视频网站| www.xxxx精品| 欧美巨大丰满猛性社交| 成人性生交大片免费观看嘿嘿视频 | 黑丝美女久久久| 国产欧美久久久| 亚洲伦理中文字幕| 99福利在线| 国产精品美女久久久久久免费| 国产日韩一区二区三免费高清| 久久久久久久久久久久久9999| 66久久国产| 日本久久久久久久久久久久| 国产成人一区在线| 天天操天天摸天天舔| 亚洲国产精品人人做人人爽| 中文在线a天堂| 日韩成人性视频| 色呦呦在线观看视频| 国产精品福利网| 老司机精品在线| 欧洲精品视频在线| 免费成人av在线播放| 一本加勒比波多野结衣| 亚洲另类在线制服丝袜| 中文字幕av资源| 亚洲欧洲黄色网| 91av久久| 成人影片在线播放| 中文字幕免费一区二区三区| 99热这里只有精品在线播放| 91一区二区在线观看| 欧美成人aaa片一区国产精品| 欧美日韩精品一区二区三区蜜桃| 欧美一区二区少妇| 8x海外华人永久免费日韩内陆视频| 麻豆一二三区精品蜜桃| 伊人久久青草| 男人的天堂亚洲一区| 日本性高潮视频| 一本一道综合狠狠老| 日韩精品视频无播放器在线看| 久久免费视频在线| 99久久香蕉| 丰满少妇大力进入| 成人网男人的天堂| 精品视频在线观看免费| 欧美v亚洲v综合ⅴ国产v| 伊人222成人综合网| 亚洲永久免费观看| 亚洲综合婷婷| 日本少妇xxx| 一区二区三区高清不卡| www.黄色片| 久久久久国产视频| 卡通动漫国产精品| 国产精品久久中文字幕| 成人99免费视频| 人人干人人干人人干| 亚洲国产成人久久| 理论片午夜视频在线观看| 久久精品第九区免费观看| 午夜在线视频一区二区区别| 日韩av一二区| 91高清视频在线| 秋霞成人影院| 超碰在线观看97| 国产亚洲午夜| 免费黄在线观看| 7777精品伊人久久久大香线蕉完整版 | 国产日韩欧美精品电影三级在线| 中文字幕一区二区三区四区欧美| 在线日韩中文字幕| 国产精品一区二区精品视频观看| 法国空姐在线观看免费| 国产成人啪免费观看软件| 日本熟妇乱子伦xxxx| 亚洲欧美精品一区二区| 日韩城人网站| 日本aa在线观看| 久久九九久精品国产免费直播| 中文字幕av免费观看| 欧美日韩国产999| 日韩高清在线免费观看| 午夜激情在线观看视频| 亚洲欧美日韩人成在线播放| 丰满肉嫩西川结衣av| 91po在线观看91精品国产性色| 欧洲毛片在线视频免费观看| 黄色a级三级三级三级| 香蕉久久一区二区不卡无毒影院| 黄色毛片在线看| 97视频资源在线观看| 久久中文精品| 国产精品白嫩白嫩大学美女| 日韩精品免费在线播放| jvid一区二区三区| 日本阿v视频在线观看| 久久精品亚洲麻豆av一区二区| 国产精品爽爽久久久久久| 97视频在线播放| 一区二区电影在线观看| 国产激情在线免费观看| 正在播放亚洲一区| 欧美电影h版| 人体内射精一区二区三区|