[LeetCode]#922. Sort Array By Parity II
1 min readJan 12, 2021
Environment: Python 3.8
Key technique: %
Given an array A
of non-negative integers, half of the integers in A are odd, and half of the integers are even.
Sort the array so that whenever A[i]
is odd, i
is odd; and whenever A[i]
is even, i
is even.
You may return any answer array that satisfies this condition.
Example 1:
Input: [4,2,5,7]
Output: [4,5,2,7]
Explanation: [4,7,2,5], [2,5,4,7], [2,7,4,5] would also have been accepted.
Analysis:
- Create a None list and size is same as input A.
- Create two variable t1=0, t2=1.
- If A[i] is even, ans[t1] is A[i]. t1=t1+2
- If A[i] is odd, ans[t2] is A[i]. t2=t2+2
- Return ans
Solution:
class Solution:
def sortArrayByParityII(self, A):
ans=[None]*len(A)
t1=0
t2=1
for i in A:
if i % 2==0:
ans[t1]=i
t1+=2
else:
ans[t2]=i
t2+=2
return ans
Submissions:
Reference:
https://leetcode.com/problems/sort-array-by-parity-ii/discuss/1003699/Python-3-two-pointers-O(n)