題目如所示。這道題目,其實一看到陣列就能判斷是不是能成為順子,關鍵是要把人的思維轉換成計算機的語言。此題主要用到了三個邏輯來判斷。
利用arrays.sort()將陣列排序,便於迴圈判斷。
判斷陣列中是否有對子出現,若有對子(兩個數一樣),則肯定不能成為順子。**表現為,判斷陣列中前後兩個數大小是相等。
計算出陣列中0的個數,因為0可以當作任意陣列使用。
計算出陣列中不是連續數字的個數,並且得出數字間隔的總數。例如,3,4 這兩個數是連續數字,則間隔是0,如果是3,6那麼間隔就是6-3-1=2,即3和6之間空缺了4,5兩個數。
判斷0的個數是否》=空缺的個數,若滿足,則是順子。
class solution
return numsofzero >= numsofgap;}}
這篇講解寫的更好
根據他的思路2,我寫出的**
class solution
if (nums[i] == nums[i + 1]) return false;
}return nums[4] - nums[numsofzero] < 5;}}
劍指Offer 61 撲克牌中的順子
題目描述 ll今天心情特別好,因為他去買了一副撲克牌,發現裡面居然有2個大王,2個小王 一副牌原本是54張 他隨機從中抽出了5張牌,想測測自己的手氣,看看能不能抽到順子,如果抽到的話,他決定去買體育彩票,嘿嘿!紅心a,黑桃3,小王,大王,方片5 oh my god 不是順子 ll不高興了,他想了想,...
劍指 Offer 61 撲克牌中的順子
總結 從撲克牌中隨機抽5張牌,判斷是不是乙個順子,即這5張牌是不是連續的。2 10為數字本身,a為1,j為11,q為12,k為13,而大 小王為 0 可以看成任意數字。a 不能視為 14。示例 1 輸入 1 2,3 4,5 輸出 true示例 2 輸入 0 0,1 2,5 輸出 true限制 陣列長...
劍指offer 61 撲克牌中的順子
題目鏈結 題目描述 從撲克牌中隨機抽5張牌,判斷是不是乙個順子,即這5張牌是不是連續的。2 10為數字本身,a為1,j為11,q為12,k為13,而大 小王為 0 可以看成任意數字。a 不能視為 14。示例 1 輸入 1,2,3,4,5 輸出 true 示例 2 輸入 0,0,1,2,5 輸出 tr...