Re: [閒聊] 每日leetcode
846. Hand of Straights
有一組整數array hand和一個整數groupsize
請問hand裡的元素是否能分成數個groups
其中每個group大小為groupsize
且group中的每個數字是連續的
思路:
先看hand的長度是不是groupsize的倍數
不是的話就可以回傳false
用hash table紀錄hand每個數字出現的次數
並將hand由小到大排列
接著用兩個迴圈,第一個去遍歷hand
第二個去看hand[i]開始有沒有groupsize個連續的整數
有的話從hash table扣掉一次,沒有就回傳fasle
這樣就可以找出答案了
也可以用heap
golang code:
func isNStraightHand(hand []int, groupSize int) bool {
n := len(hand)
if n%groupSize != 0 {
return false
}
slices.Sort(hand)
rec := make(map[int]int)
for _, val := range hand {
rec[val]++
}
for _, val := range hand {
if rec[val] > 0 {
for i := 0; i < groupSize; i++ {
rec[val+i]--
if rec[val+i] < 0 {
return false
}
}
}
}
return true
}
--
https://i.imgur.com/r9FBAGO.gif

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.73.133.45 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1717677867.A.3DE.html
推
06/06 20:52,
1年前
, 1F
06/06 20:52, 1F
推
06/06 20:53,
1年前
, 2F
06/06 20:53, 2F
推
06/06 20:57,
1年前
, 3F
06/06 20:57, 3F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 325 之 1549 篇):