題目描述:
愛麗絲有一手(hand
)由整數陣列給定的牌。
現在她想把牌重新排列成組,使得每個組的大小都是w
,且由w
張連續的牌組成。
如果她可以完成分組就返回true
,否則返回false
。
示例 1:
輸入:hand = [1,2,3,6,2,3,4,7,8]
,w = 3
輸出:true
解釋:愛麗絲的手牌可以被重新排列為[1,2,3]
,[2,3,4]
,[6,7,8]
。
示例 2:
輸入:hand = [1,2,3,4,5]
,w = 4
輸出:false
解釋:愛麗絲的手牌無法被重新排列成幾個大小為4
的組。
2.0 <= hand[i] <= 10^9
3.1 <= w <= hand.length
思路分析:
要組成任意組大小為w
的順子,則·hand·陣列的元素個數必定為w
的整數倍。首先處理hand
陣列,確定每種牌的數量儲存在陣列arr
中(arr
的索引為牌的值,索引處的值為該牌的數量);然後再次遍歷陣列hand
,從小到大排順子(每w
張連續遞增1
的牌為一組順子),若能全部排完則返回true
。
**示例:
/**
* @param hand
* @param w
* @return
*/var isnstraighthand = module.exports = function
(hand, w) else
} for (let i = 0; i < len; i++) else
}}
} return
true;
};
Leetcode 846 一手順子
愛麗絲有一手 hand 由整數陣列給定的牌。現在她想把牌重新排列成組,使得每個組的大小都是w,且由w張連續的牌組成。如果她可以完成分組就返回true,否則返回false。示例 1 輸入 hand 1,2,3,6,2,3,4,7,8 w 3輸出 true解釋 愛麗絲的手牌可以被重新排列為 1,2,3 ...
js常見演算法題(一)
1.每個單詞手字母大寫 var capitalizeeveryword str str.replace b a z g,char char.touppercase capitalizeeveryword hello world 複製 2.計算平均數 var calculatedmean arr ar...
做演算法題的一些想法
現在dp的難點在於,理解遞迴方程不難,但是如何據此設計出符合題意的正確的初始條件?不同的初始條件對應不同的問題。如01揹包中的是恰好裝滿揹包還是不超過揹包最大容量,可以通過初始化解決。自己在設計演算法的時候,如何設計出符合題意的初始條件和遞迴過程。這個過程全靠腦子復現一步一步的步驟是很慢的。因此,需...