Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // MARK: Найти индекс справа и слева от которого сумма элементов равна, если такого нет, то -1
- // 724. Find pivot index
- // 1 - посчитать префиксную сумму в массив
- // 2 - пройтись по циклу сравнивая префиксную сумму с МАССИВОМ без следующей префиксной суммы (так как смотрим без числа на искомом индексе)
- // 1, 7, 3, 6, 5, 6
- // ----------
- // 0, 1, 8, 11, 17, 22, 28
- // -- --
- func pivotIndex(_ nums: [Int]) -> Int {
- var prefSums: [Int] = [0]
- var sum = 0
- for value in nums {
- prefSums.append(sum + value)
- sum += value
- }
- for i in 0..<nums.count {
- // сравниваем преф сумму с общей суммой массива без следующей преф суммы (следующей от текущей)
- let pref = prefSums[i]
- let arrayWithoutPref = prefSums[prefSums.count-1] - prefSums[i+1]
- if pref == arrayWithoutPref {
- return i
- }
- }
- return -1
- }
- pivotIndex([1,7,3,6,5,6])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement