You are viewing a single comment's thread. Return to all comments →
Swift solution using 2 Dictionaries:
func freqQuery(queries: [[Int]]) -> [Int] { var numbers = [Int: Int]() var freq = [Int: Int]() var result = [Int]() for query in queries { let command = query[0] let value = query[1] if command == 1 { if let oldCount = numbers[value] { let newCount = oldCount + 1 freq[oldCount] = (freq[oldCount] ?? 0) - 1 freq[newCount] = (freq[newCount] ?? 0) + 1 numbers[value] = newCount } else { freq[1] = (freq[1] ?? 0) + 1 numbers[value] = 1 } } else if command == 2 { if let oldCount = numbers[value] { let newCount = oldCount - 1 freq[oldCount] = (freq[oldCount] ?? 0) - 1 freq[newCount] = (freq[newCount] ?? 0) + 1 if newCount == 0 { numbers[value] = nil } else { numbers[value] = newCount } } } else if command == 3 { if let check = freq[value], check > 0 { result.append(1) } else { result.append(0) } } } return result }
Frequency Queries
You are viewing a single comment's thread. Return to all comments →
Swift solution using 2 Dictionaries: