多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全I(xiàn)T社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > php開源 > php教程 > 撲克牌順子

撲克牌順子

來源:程序員人生   發(fā)布時間:2016-08-17 09:59:47 閱讀次數(shù):2669次

題目

LL今天心情特別好,由于他去買了1副撲克牌,發(fā)現(xiàn)里面竟然有2個大王,2個小王(1副牌本來是54張^_^)…他隨機(jī)從中抽出了5張牌,想測測自己的手氣,看看能不能抽到順子,如果抽到的話,他決定去買體育彩票,嘿嘿!!“紅心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)在,要求你使用這幅牌摹擬上面的進(jìn)程,然后告知我們LL的運(yùn)氣如何。為了方便起見,你可以認(rèn)為大小王是0。

解題

理解題目意思
54張撲克,2個大王,2個小王,隨機(jī)抽取5張,判斷是不是是連續(xù)的5個數(shù)
說明:
1.大小王可以當(dāng)人任意的數(shù)
2.大小王是0作為標(biāo)示
3.字母理解成對數(shù)字
4.輸入的是轉(zhuǎn)換后的數(shù)
進(jìn)1步理解:
0到13內(nèi)的數(shù),每一個數(shù)有4張,共54張,其中抽取5張,判斷能否組成連續(xù)的數(shù)
說明:0可以當(dāng)作任意的數(shù)
先排序比較處理
重復(fù)數(shù)不是0,1定不可以組成連續(xù)數(shù)

沒有0,當(dāng)時連續(xù)數(shù)時候,5個數(shù)的和等于:(min+max)?5/2,只需要判斷和的值,依照下面思路,排序后的5個數(shù)間隔是:1111
1個0,判斷4個數(shù)是不是是連續(xù)數(shù),是可以組成,否,判斷排序后的4個數(shù)相鄰元素是不是只有1個相鄰數(shù)對間隔2。依照下面思路,排序后4個數(shù)的
間隔是:111,211,121,112
2個0,這個比較復(fù)雜了,根據(jù)1個0的情況確切比較復(fù)雜,我們只需要判斷排序后的3個數(shù)之間的間隔是多少,11,31,13,22這4種情況加0后是連續(xù)數(shù)
3個0,排序后的兩個數(shù)間隔:1,2,3,4
4個0,1定可以組成

import java.util.*; public class Solution { public boolean isContinuous(int [] numbers) { if(numbers ==null || numbers.length!=5) return false; Arrays.sort(numbers); int count0 = 0; int count1 = 0; for(int i=0;i<4;i++){ if(numbers[i]==0){ count0++; }else{ if(numbers[i] == numbers[i+1]) count1++; } } if(count1!=0) return false; if(count0==4) return true; for(int i=4;i>=1;i--){ numbers[i] = numbers[i] - numbers[i-1]; } if(count0==3){ // 1,2,3,4 if(numbers[4]>=1 && numbers[4]<=4) return true; } if(count0==2){ // 11,31,13,22 if(numbers[4]==1 && numbers[3]==1 || numbers[4]==1 && numbers[3]==3 || numbers[4]==3 && numbers[3]==1 || numbers[4]==2 && numbers[3]==2) return true; } if(count0==1){ // 111,211,121,112 if(numbers[4]==1 && numbers[3]==1 && numbers[2]==1 || numbers[4]==2 && numbers[3]==1 && numbers[2]==1 || numbers[4]==1 && numbers[3]==2 && numbers[2]==1 || numbers[4]==1 && numbers[3]==1 && numbers[2]==2) return true; } if(count0==0){ // 111 if(numbers[4]==1 && numbers[3]==1 && numbers[2]==1 && numbers[1]==1) return true; } return false; } }

根據(jù)上面可以發(fā)現(xiàn)最大值和最小值的差可以是:1,2,3,4
所有就能夠直接根據(jù)這個值進(jìn)行判斷

import java.util.*; public class Solution { public boolean isContinuous(int [] numbers) { if(numbers == null || numbers.length!=5) return false; Arrays.sort(numbers); int flag = 0; int i = 0; while(flag<numbers.length && numbers[flag] ==0){ flag++; } // falg 就是0 的個數(shù) // 判斷剩余數(shù)中 // 判斷是不是有相等元素,有相等則返回false for(int k = flag;k<numbers.length - 1;k++){ if(numbers[k] == numbers[k+1]) return false; } // 判斷區(qū)間內(nèi)有幾個數(shù) int num = numbers[4] - numbers[flag] ; return num<=4; } }

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 免费观看视频网站 | 亚洲视频2| 日本综合在线观看 | 一区二区三区四区在线不卡高清 | 在线观看噜噜噜私人影院 | 国产真实女人一级毛片 | xxx日韩| 亚洲国产日韩综合久久精品 | h网在线观看| 亚洲爱爱网 | 国产日产欧美精品 | 亚洲天堂美女 | www.亚洲天堂| 亚洲爱色 | 欧美黑人巨大最猛性xxxxx | 国产中日韩一区二区三区 | 大香线蕉97久久 | 美女上床网站 | 精品视频一区二区三区四区五区 | 高清不卡一区二区三区 | 国产三级短视频 | 免费视频成人 | 国产女人伦码一区二区三区不卡 | 日韩一级欧美一级一级国产 | 午夜精品久久久久久久久 | 国产精品一区二区三区久久 | 美女啪啪免费网站 | 99爱视频99爱在线观看免费 | 欧美1069 | 国产精品欧美韩国日本久久 | 中文字幕无线码一区二区三区 | 图片区亚洲 | 操人网 | 性欧美巨大 | 亚洲经典一区 | 欧美性受xxxx喷水性欧洲 | 国产免费一区不卡在线 | 国产精品国产三级国产无毒 | 亚洲欧美另类在线视频 | 性欧美大战久久久久久久久 | 日韩欧美中文字幕一区二区三区 |