Advertisement
Alexxik

Untitled

Sep 9th, 2023 (edited)
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 0.79 KB | None | 0 0
  1. // MARK: - Вернуть K самых повторяющихся элементов
  2.  
  3. func topKFrequent(_ words: [String], _ k: Int) -> [String] {
  4.     var dict = [String:Int]()
  5.     var result = [String]()
  6.    
  7.     for st in words {
  8.         dict[st, default: 0] += 1
  9.     }
  10.    
  11.     let sorted = dict.keys.sorted {
  12.         // Если частота встречаний одинакова, то по лексикограф порядку
  13.         if dict[$0] == dict[$1] {
  14.             return $0 < $1
  15.         } else {
  16.             return dict[$0]! > dict[$1]!
  17.         }
  18.     }
  19.    
  20.     // k не включаем так как с 0 начинаем
  21.     for i in 0..<k {
  22.         result.append(sorted[i])
  23.     }
  24.     return result
  25. }
  26.  
  27. topKFrequent(["i","love","leetcode","i","love","coding"], 2)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement