Appearance
Wave Array
Problem Description
Given an array of integers A, sort the array into a wave-like array and return it. In other words, arrange the elements into a sequence such that
a1 >= a2 <= a3 >= a4 <= a5.....
NOTE: If multiple answers are possible, return the lexicographically smallest one.
Problem Constraints
1 <= len(A) <= 10^6
1 <= A[i] <= 10^6
1 <= len(A) <= 10^6
1 <= A[i] <= 10^6
Input Format
The first argument is an integer array A.
The first argument is an integer array A.
Output Format
Return an array arranged in the sequence as described.
Return an array arranged in the sequence as described.
Example Input
Input 1:
A = [1, 2, 3, 4]
Input 2:
A = [1, 2]
Input 1:
A = [1, 2, 3, 4]
Input 2:
A = [1, 2]
Example Output
Output 1:
[2, 1, 4, 3]
Output 2:
[2, 1]
Output 1:
[2, 1, 4, 3]
Output 2:
[2, 1]
Example Explanation
Explanation 1:
One possible answer : [2, 1, 4, 3]
Another possible answer : [4, 1, 3, 2]
First answer is lexicographically smallest. So, return [2, 1, 4, 3].
Explanation 2:
Only possible answer is [2, 1].
Explanation 1:
One possible answer : [2, 1, 4, 3]
Another possible answer : [4, 1, 3, 2]
First answer is lexicographically smallest. So, return [2, 1, 4, 3].
Explanation 2:
Only possible answer is [2, 1].
Solution
swift
import Foundation
class Solution {
func wave(_ A: inout [Int]) -> [Int] {
var B = A.sorted()
for i in 0..<(B.count/2){
let tmp = B[2*i+1]
B[2*i+1] = B[2*i]
B[2*i] = tmp
}
return B
}
}
import Foundation
class Solution {
func wave(_ A: inout [Int]) -> [Int] {
var B = A.sorted()
for i in 0..<(B.count/2){
let tmp = B[2*i+1]
B[2*i+1] = B[2*i]
B[2*i] = tmp
}
return B
}
}