撲克牌順子

2022-03-18 03:02:31 字數 1546 閱讀 9733

撲克牌順子

題目描述

從撲克牌中隨機抽取5張牌, 判斷是不是乙個順子, 即這5張牌是不是連續的. 2~10為數字本身, a為1, j為11, q為12, k為13, 大小王看成是任意數字並在陣列中用0表示

新學一招, bitmap排序, 傳輸門 ----> bitmap對海量無重複的整數排序

class solution 

return true;

}};

雜湊表法

class solution 

vectorvt;

vt.resize(14);

int len = numbers.size();

int max = -1;

int min = 14;

for (int i = 0; i < len; i++)

if (vt[numbers[i]] > 1)

if (numbers[i] > max)

if (numbers[i] < min)

}if (max - min < 5)

return false;

}};

判斷條件比下面那個簡化多了, 使用乙個變數記錄排好序後陣列相鄰兩個元素的差值

class solution 

sort(numbers.begin(), numbers.end());

int numbersofzero = 0;

int numbersofgape = 0;

int i = 0;

while (i < (numbers.size() - 1))

if (numbers[i] == numbers[i+1])

numbersofgape = numbersofgape + numbers[i+1] - numbers[i] - 1;

i++;

}return (numbersofgape > numbersofzero ? false : true);

}};

有點作弊了, 使用了排序函式, 最後的輸出真是層層圍堵, 各種判斷

class solution 

sort(numbers.begin(), numbers.end());

int numberofzero = 0;

int i = 0;

while (i < (numbers.size() - 1))

if (numbers[i] == numbers[i+1])

else if (1 == numbers[i+1] - numbers[i])

else if ((numberofzero > 0) && (numbers[i+1] - numbers[i] <= numberofzero + 1))

else

}return true;

}};

撲克牌順子

ll今天心情特別好,因為他去買了一副撲克牌,發現裡面居然有2個大王,2個小王 一副牌原本是54張 他隨機從中抽出了5張牌,想測測自己的手氣,看看能不能抽到順子,如果抽到的話,他決定去買體育彩票,嘿嘿!紅心a,黑桃3,小王,大王,方片5 oh my god 不是順子.ll不高興了,他想了想,決定大 小...

撲克牌順子

題目描述 ll今天心情特別好,因為他去買了一副撲克牌,發現裡面居然有2個大王,2個小王 一副牌原本是54張 他隨機從中抽出了5張牌,想測測自己的手氣,看看能不能抽到順子,如果抽到的話,他決定去買體育彩票,嘿嘿!紅心a,黑桃3,小王,大王,方片5 oh my god 不是順子 ll不高興了,他想了想,...

撲克牌順子

ll今天心情特別好,因為他去買了一副撲克牌,發現裡面居然有2個大王,2個小王 一副牌原本是54張 他隨機從中抽出了5張牌,想測測自己的手氣,看看能不能抽到順子,如果抽到的話,他決定去買體育彩票,嘿嘿!紅心a,黑桃3,小王,大王,方片5 oh my god 不是順子 ll不高興了,他想了想,決定大 小...