js做演算法題 一手順子

2021-08-20 21:59:39 字數 1187 閱讀 4158

題目描述:

愛麗絲有一手(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揹包中的是恰好裝滿揹包還是不超過揹包最大容量,可以通過初始化解決。自己在設計演算法的時候,如何設計出符合題意的初始條件和遞迴過程。這個過程全靠腦子復現一步一步的步驟是很慢的。因此,需...