日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

《剑指offer》扑克牌顺序

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

題目: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)在,要求你使用這幅牌模擬上面的過程,然后告訴我們LL的運(yùn)氣如何。為了方便起見,你可以認(rèn)為大小王是0。

解析:首先把0去掉,0代表大小王,相當(dāng)于癩子。然后剩下的排序,求每隊(duì)相鄰數(shù)據(jù)間大于1的和,然后與0的個(gè)數(shù)比較,若所有大于1的間距和小于或等于0的個(gè)數(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)計(jì)0的個(gè)數(shù)int need=0;//累加每對(duì)數(shù)據(jù)間和大于1的間距Arrays.sort(numbers);//1 3 5 0 0for(int i : numbers){if(i==0){count++;continue;}else {if(list.contains(i)){//都有重復(fù)的牌了,還組個(gè)什么順子,可以趕下場(chǎng)了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))){//相鄰兩個(gè)數(shù)據(jù)間的差不為1,就需要記錄中間差多少張牌了need+=(list.get(j)-list.get(i)-1);}}}return need<=count?true:false;} }

總結(jié)

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

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