题解 | #最小的K个数#
最小的K个数
https://www.nowcoder.com/practice/6a296eb82cf844ca8539b57c23e6e9bf
ic[key]!func GetLeastNumbers_Solution ( _ input: [Int], _ k: Int) -> [Int] {
var dic = [String:[Int]]()
for item in input {
let key = "\(item)"
if dic[key] == nil {
dic[key] = [item]
} else {
if var newValue = dic[key] {
newValue.append(newValue[newValue.count - 1])
dic[key] = newValue
}
}
}
let keys = Set.init(input).sorted(by: <)
var result = [Int]()
var count = 0
for i in 0..<keys.count {
let key = "\(keys[i])"
result.append(contentsOf: dic[key]!)
count += dic[key]!.count
if count > k {
break
}
}
return [Int](result[0..<k])
}
func GetLeastNumbers_Solution ( _ input: [Int], _ k: Int) -> [Int] { var dic = [String:[Int]]() for item in input { let key = "\(item)" if dic[key] == nil { dic[key] = [item] } else { if var newValue = dic[key] { newValue.append(newValue[newValue.count - 1]) dic[key] = newValue } } } let keys = Set.init(input).sorted(by: <) var result = [Int]() var count = 0 for i in 0..<keys.count { let key = "\(keys[i])" result.append(contentsOf: dic[key]!) count += dic[key]!.count if count > k { break } } return [Int](result[0..<k]) }