※ 引述《oin1104 (是oin的說)》之銘言:
: ※ 引述 《sustainer123 (caster)》 之銘言:
: :
: :
: : https://reurl.cc/gGYKGL
: :
: : 1608. Special Array With X Elements Greater Than or Equal X
: :
: : 給你一數列 此數列只有非負整數 假設有一整數x 數列中恰巧有x個元素大於等於x
: :
: : 請回傳x 假設無x 則回傳-1
: :
: : x不必是存在於數列的元素
: :
: : Example 1:
: :
: : Input: nums = [3,5]
: : Output: 2
: : Explanation: There are 2 values (3 and 5) that are greater than or equal to 2.
: : Example 2:
: :
沒電腦前先把今天的每日寫一寫
兩種寫法:
第一種:
排序+二分搜尋,不過我的二分搜尋寫出來還要再額外判斷一個條件
滿爛的
第二種:
用hash table記錄每一個數字出現的頻率
然後從1~n去檢查一下有沒有符合條件
golang code:
func specialArray(nums []int) int {
rec:=make(map[int]int)
for _,val:=range nums{
rec[val]++
}
for i:=1;i<=len(nums);i++{
cnt:=0
for key,val:=range rec{
if key>=i{
cnt+=val
}
}
if cnt==i{
return i
}
}
return -1
}