摘要:上面的張牌就可以變成大小王分別看作和?,F(xiàn)在要求你使用這幅牌模擬上面的過(guò)程然后告訴我們的運(yùn)氣如何,如果牌能組成順子就輸出,否則就輸出。例如可以看做可以看做但是類似于就不行,因?yàn)楹椭g需要兩個(gè)數(shù)字來(lái)補(bǔ),但是只有一個(gè),所以不能構(gòu)成順子。
題目描述
LL今天心情特別好,因?yàn)樗ベI了一副撲克牌,發(fā)現(xiàn)里面居然有2個(gè)大王,2個(gè)小王(一副牌原本是54張^_^)...他隨機(jī)從中抽出了5張牌,想測(cè)測(cè)自己的手氣,看看能不能抽到順子,如果抽到的話,他決定去買體育彩票,嘿嘿!!“紅心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是順子.....LL不高興了,他想了想,決定大小 王可以看成任何數(shù)字,并且A看作1,J為11,Q為12,K為13。上面的5張牌就可以變成“1,2,3,4,5”(大小王分別看作2和4),“So Lucky!”。LL決定去買體育彩票啦。 現(xiàn)在,要求你使用這幅牌模擬上面的過(guò)程,然后告訴我們LL的運(yùn)氣如何, 如果牌能組成順子就輸出true,否則就輸出false。為了方便起見,你可以認(rèn)為大小王是0。
分析簡(jiǎn)單地說(shuō),其實(shí)就是給一個(gè)數(shù)組,檢查數(shù)組是否構(gòu)成一個(gè)順序序列,且數(shù)組中的0可以被替換為任意數(shù)字。
例如:
[0,0,1,2,3]可以看做[1,2,3,4,5]
[0,1,3,4,5]可以看做[1,2,3,4,5]
但是類似于[0,1,4,5,6]就不行,因?yàn)?和1之間需要兩個(gè)數(shù)字來(lái)補(bǔ),但是只有一個(gè)0,所以不能構(gòu)成順子。
所以總結(jié)一下:
序列中有相同的數(shù)字,即對(duì)子的出現(xiàn),則返回false
如果出現(xiàn)了n個(gè)0,說(shuō)明可以由n個(gè)數(shù)字可以被補(bǔ)上,這個(gè)時(shí)候需要檢查整個(gè)序列需要幾個(gè)數(shù)字來(lái)補(bǔ),記為m,如果m大于n,則返回false,否則返回true。例如:
數(shù)組[0,0,2,4,7],遍歷序列后需要(4-2-1)+(7-4-1)=3個(gè)數(shù)字來(lái)補(bǔ),但是0的個(gè)數(shù)是2,所以補(bǔ)不夠,返回false
function IsContinuous(numbers) { if(numbers === null || numbers.length !== 5) return false; numbers.sort(function(a,b) { return a-b; }) var count = 0; // 有幾個(gè)王 var distance = 0; // 差值 if(numbers[3] === 0) return true; else if(numbers[2] === 0) count = 3; else if(numbers[1] === 0) count = 2; else if(numbers[0] === 0) count = 1; for(var i = count;i < numbers.length-1;i++) { if(numbers[i+1] - numbers[i] === 0) return false; else if(numbers[i+1] - numbers[i] === 1) continue; else distance = distance + numbers[i+1] - numbers[i] - 1; } if(distance > count) return false; else return true; }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/96303.html
摘要:系統(tǒng)結(jié)構(gòu)系統(tǒng)考慮使用和實(shí)現(xiàn)服務(wù)器端邏輯,前端使用。邏輯流程主要邏輯包括用戶進(jìn)入游戲等待對(duì)家進(jìn)入游戲游戲過(guò)程結(jié)束統(tǒng)計(jì)這個(gè)過(guò)程。 1. 系統(tǒng)結(jié)構(gòu) 系統(tǒng)考慮使用Nodejs和SocketIo實(shí)現(xiàn)服務(wù)器端邏輯,前端使用HTML5。showImg(https://segmentfault.com/img/remote/1460000007643089); 2. 邏輯流程 1 . 主要邏輯包括用戶...
摘要:系統(tǒng)結(jié)構(gòu)系統(tǒng)考慮使用和實(shí)現(xiàn)服務(wù)器端邏輯,前端使用。邏輯流程主要邏輯包括用戶進(jìn)入游戲等待對(duì)家進(jìn)入游戲游戲過(guò)程結(jié)束統(tǒng)計(jì)這個(gè)過(guò)程。 1. 系統(tǒng)結(jié)構(gòu) 系統(tǒng)考慮使用Nodejs和SocketIo實(shí)現(xiàn)服務(wù)器端邏輯,前端使用HTML5。showImg(https://segmentfault.com/img/remote/1460000007643089); 2. 邏輯流程 1 . 主要邏輯包括用戶...
摘要:后來(lái)知道有了院賽,學(xué)長(zhǎng)說(shuō)刷院和杭電就可,我就一直刷院,到最后比賽前院的前五十道基本做完,杭電也弄了十來(lái)道,就這樣草草參加比賽了。 博客主頁(yè): https://b...
摘要:順子號(hào)或者或者之類的工作中寫的那個(gè)還有,晚上研究了下終于寫出個(gè)沒(méi)有的方法,分享下,如果看到這篇文章還有更好辦法的歡迎交流,共同進(jìn)步。這邊的數(shù)組比如這邊的數(shù)組比如只要和是順子并且長(zhǎng)度總和等于,或者的長(zhǎng)度等于那么數(shù)組就是順子的情況 順子號(hào):1,2,3,4,5或者9,0,1,2,3,4或者7,8,9,0,1之類的工作中寫的那個(gè)還有bug,晚上研究了下終于寫出個(gè)沒(méi)有bug的方法,分享下,如果看...
閱讀 2427·2021-11-25 09:43
閱讀 1203·2021-09-07 10:16
閱讀 2619·2021-08-20 09:38
閱讀 2945·2019-08-30 15:55
閱讀 1465·2019-08-30 13:21
閱讀 896·2019-08-29 15:37
閱讀 1448·2019-08-27 10:56
閱讀 2097·2019-08-26 13:45