Advertisement
Alexxik

Untitled

Mar 18th, 2024
252
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 1.19 KB | None | 0 0
  1. // Пофильтровать сортированный список по другому сортированному списку
  2. // или
  3. // Даны две отсортированных по неубыванию последовательности целых чисел.
  4. // Необходимо вернуть все элементы из первой последовательности, которых нет во второй.
  5.  
  6. func filterSortedList(_ a: [Int], _ b: [Int]) -> [Int] {
  7.    
  8.     var aPnt = 0
  9.     var bPnt = 0
  10.     var result = [Int]()
  11.    
  12.     while aPnt < a.count && bPnt < b.count {
  13.         while aPnt < a.count && bPnt < b.count && a[aPnt] < b[bPnt] {
  14.             result.append(a[aPnt])
  15.             aPnt += 1
  16.         }
  17.         while aPnt < a.count && bPnt < b.count && b[bPnt] < a[aPnt] {
  18.             bPnt += 1
  19.         }
  20.         while aPnt < a.count && bPnt < b.count && a[aPnt] == b[bPnt] {
  21.             aPnt += 1
  22.         }
  23.     }
  24.    
  25.     if aPnt <= a.count-1 {
  26.         result += Array(a[aPnt..<a.count])
  27.     }
  28.    
  29.    
  30.     return result
  31. }
  32.  
  33. filterSortedList([1, 2, 2], [2])
  34. filterSortedList([1, 2, 3], [2, 2, 2])
  35. filterSortedList([1, 2, 3, 4], [1, 2, 3])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement