Advertisement
Alexxik

Untitled

Sep 9th, 2023 (edited)
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 1.59 KB | None | 0 0
  1. // MARK: - 2657. Find the Prefix Common Array of Two Arrays
  2. // Найти кол-во повторяющихся элементов на каждой позиции
  3. // A = [1,3,2,4],
  4. // B = [3,1,2,4]
  5. //  -> [0,2,3,4]
  6. // На позиции 1 - повторяющихся элементов 2шт - 1, 3
  7.  
  8.  
  9. func findThePrefixCommonArray(_ A: [Int], _ B: [Int]) -> [Int] {
  10.    
  11.     var set = Set<Int>()
  12.    
  13.     var result = Array(repeating: 0, count: A.count)
  14.    
  15.     // Если в множество будет положено 2 числа сразу, то общих чисел нет
  16.    
  17.     for i in 0..<A.count {
  18.         set.insert(A[i])
  19.         set.insert(B[i])
  20.         // Сколько всего элементов положили (нужно прибавить 1, чтобы отсчет был не с 0)
  21.         // (i + 1) - номер элемента, который мы кладем (чтобы не было нулей)
  22.         let totalInput = 2 * (i + 1)
  23.        
  24.         // Проверяем длинну Set и сколько фактически положили
  25.        
  26.         result[i] = totalInput - set.count
  27.     }
  28.    
  29.     return result
  30. }
  31.  
  32. /*
  33.  сколько элементов исчезло, когда добавляли в сет, столько и дкбликатов
  34.  - Положили 4 элемента, 2 исчезло (1, 3) -> значит они были дубликатами
  35.  - Положили 6 элементов, 2 исчезло (1, 3) -> они дубликаты
  36.  */
  37.  
  38. let A = [1,3,9,4]
  39. let B = [3,1,8,4]
  40.  
  41. findThePrefixCommonArray(A, B)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement