日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > 撲克牌順子

撲克牌順子

來源:程序員人生   發布時間:2016-08-17 09:59:47 閱讀次數:2674次

題目

LL今天心情特別好,由于他去買了1副撲克牌,發現里面竟然有2個大王,2個小王(1副牌本來是54張^_^)…他隨機從中抽出了5張牌,想測測自己的手氣,看看能不能抽到順子,如果抽到的話,他決定去買體育彩票,嘿嘿?。 凹t心A,黑桃3,小王,大王,方片5”,“Oh My God!”不是順子…..LL不高興了,他想了想,決定大\小 王可以看成任何數字,并且A看做1,J為11,Q為12,K為13。上面的5張牌就能夠變成“1,2,3,4,5”(大小王分別看做2和4),“So Lucky!”。LL決定去買體育彩票啦。 現在,要求你使用這幅牌摹擬上面的進程,然后告知我們LL的運氣如何。為了方便起見,你可以認為大小王是0。

解題

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

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

根據上面可以發現最大值和最小值的差可以是:1,2,3,4
所有就能夠直接根據這個值進行判斷

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 的個數 // 判斷剩余數中 // 判斷是不是有相等元素,有相等則返回false for(int k = flag;k<numbers.length - 1;k++){ if(numbers[k] == numbers[k+1]) return false; } // 判斷區間內有幾個數 int num = numbers[4] - numbers[flag] ; return num<=4; } }

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 久久精品首页 | 欧美日韩精品免费观看视频 | 亚洲精品午夜 | 91在线视频播放 | 99久久精品一区字幕狠狠婷婷 | 欧美日韩在线一区二区 | 精品久久久久久久久久久久久久久久久 | 麻豆国产尤物av尤物在线观看 | 色又黄又爽18件免费网站 | 亚洲色图色 | 午夜精品久久久久久久96蜜桃 | 91久久国产综合久久蜜月精品 | 欧美日韩无 | 91免费福利 | 人人澡人人添人人爽一区二区 | 亚洲国产高清在线 | 欧美一级毛片免费的视频 | 色呦呦在线观看视频 | 中文字幕自拍 | 国产伦精品一区二区三区精品视频 | 精品少妇一区二区三区 | 欧美高清dvd | 精品久久久久久久人人人人传媒 | 日韩国产一区二区三区 | 精品久久在线 | 激情综合网五月 | 欧美.com| 在线看污 | 国产精品精品视频 | 亚洲精品免费网站 | 久久思思视频 | 麻豆高清免费国产一区 | 久久尤物视频 | 国产精品二三区 | 中文字幕超碰在线 | 亚洲精品日韩精品 | 亚洲一区二区三区高清 | 日本理伦片午夜理伦片 | 国产日本视频 | 欧美日韩免费做爰视频 | 久久久精品播放 |