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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

《剑指offer》扑克牌顺序

發(fā)布時間:2024/1/23 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《剑指offer》扑克牌顺序 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

題目:LL今天心情特別好,因為他去買了一副撲克牌,發(fā)現(xiàn)里面居然有2個大王,2個小王(一副牌原本是54張^_^)…他隨機從中抽出了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)在,要求你使用這幅牌模擬上面的過程,然后告訴我們LL的運氣如何。為了方便起見,你可以認為大小王是0。

解析:首先把0去掉,0代表大小王,相當于癩子。然后剩下的排序,求每隊相鄰數(shù)據(jù)間大于1的和,然后與0的個數(shù)比較,若所有大于1的間距和小于或等于0的個數(shù)就滿足條件來了。

import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class Solution {public boolean isContinuous(int [] numbers) {if(numbers.length==0){//邊界條件return false;}List<Integer> list = new ArrayList<>();//記錄不是0的數(shù)字int count=0;//統(tǒng)計0的個數(shù)int need=0;//累加每對數(shù)據(jù)間和大于1的間距Arrays.sort(numbers);//1 3 5 0 0for(int i : numbers){if(i==0){count++;continue;}else {if(list.contains(i)){//都有重復的牌了,還組個什么順子,可以趕下場了return false;}list.add(i);}}//1 3 5for(int i=0;i<list.size()-1;i++){int j=i+1;if(j<list.size()){if(1!=(list.get(j)-list.get(i))){//相鄰兩個數(shù)據(jù)間的差不為1,就需要記錄中間差多少張牌了need+=(list.get(j)-list.get(i)-1);}}}return need<=count?true:false;} }

總結(jié)

以上是生活随笔為你收集整理的《剑指offer》扑克牌顺序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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