Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- func getSquare(_ arr: [Int]) -> [Int]{
- var res = [Int]()
- guard arr.count > 0 else {return res}
- if arr[0] >= 0 { return arr.map{ $0 * $0 } }
- //find first possitive
- var i = 0
- while i < arr.count {
- if arr[i] >= 0 {break}
- i += 1
- }
- var j = i - 1
- while i < arr.count || j >= 0 {
- if j < 0 {
- res.append(arr[i] * arr[i])
- i += 1
- continue
- }
- if i == arr.count {
- res.append(arr[j] * arr[j])
- j -= 1
- continue
- }
- if abs(arr[j]) < arr[i] {
- res.append(arr[j] * arr[j])
- j -= 1
- }else{
- res.append(arr[i] * arr[i])
- i += 1
- }
- }
- return res
- }
- var arr = [-10, -2, -1]
- print (getSquare(arr))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement