Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Пофильтровать сортированный список по другому сортированному списку
- // или
- // Даны две отсортированных по неубыванию последовательности целых чисел.
- // Необходимо вернуть все элементы из первой последовательности, которых нет во второй.
- func filterSortedList(_ a: [Int], _ b: [Int]) -> [Int] {
- var aPnt = 0
- var bPnt = 0
- var result = [Int]()
- while aPnt < a.count && bPnt < b.count {
- while aPnt < a.count && bPnt < b.count && a[aPnt] < b[bPnt] {
- result.append(a[aPnt])
- aPnt += 1
- }
- while aPnt < a.count && bPnt < b.count && b[bPnt] < a[aPnt] {
- bPnt += 1
- }
- while aPnt < a.count && bPnt < b.count && a[aPnt] == b[bPnt] {
- aPnt += 1
- }
- }
- if aPnt <= a.count-1 {
- result += Array(a[aPnt..<a.count])
- }
- return result
- }
- filterSortedList([1, 2, 2], [2])
- filterSortedList([1, 2, 3], [2, 2, 2])
- filterSortedList([1, 2, 3, 4], [1, 2, 3])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement