Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- func commonNumbersOnPrefixes(_ a: [Int], _ b: [Int]) -> [Int] {
- var result = Array.init(repeating: 0, count: a.count)
- var setA = Set<Int>()
- var setB = Set<Int>()
- var count = 0
- for i in 0..<a.count {
- // реашвем проблему с тем когда равные элементы
- if a[i] == b[i] && !setA.contains(a[i]) && !setB.contains(b[i]) {
- count += 1
- }
- // есть в другом и нет в нашем
- // без проверки на нахождение в нашем каждый раз будет добавлять даже если уже посчитал этот общий элемент
- if setB.contains(a[i]) && !setA.contains(a[i]){
- count += 1
- }
- if setA.contains(b[i]) && !setB.contains(b[i]){
- count += 1
- }
- setA.insert(a[i])
- setB.insert(b[i])
- result[i] = count
- }
- return result
- }
- let A = [1,2,1,4]
- let B = [4,0,1,3]
- commonNumbersOnPrefixes(A, B) // [0, 0, 1, 2]
Add Comment
Please, Sign In to add comment