diff --git a/0941_sort-array-by-parity/README.md b/0941_sort-array-by-parity/README.md new file mode 100644 index 0000000..2fcdf38 --- /dev/null +++ b/0941_sort-array-by-parity/README.md @@ -0,0 +1,23 @@ +Given an integer array `nums`, move all the even integers at the beginning of the array followed by all the odd integers. + +Return _**any array** that satisfies this condition_. + +**Example 1:** + + Input: nums = [3,1,2,4] + Output: [2,4,3,1] + Explanation: The outputs [4,2,3,1], [2,4,1,3], and [4,2,1,3] would also be accepted. + + +**Example 2:** + + Input: nums = [0] + Output: [0] + + +**Constraints:** + +* `1 <= nums.length <= 5000` +* `0 <= nums[i] <= 5000` + +https://leetcode.com/problems/sort-array-by-parity \ No newline at end of file diff --git a/0941_sort-array-by-parity/python3/solution.py b/0941_sort-array-by-parity/python3/solution.py new file mode 100644 index 0000000..18bb882 --- /dev/null +++ b/0941_sort-array-by-parity/python3/solution.py @@ -0,0 +1,17 @@ +class Solution: + def sortArrayByParity(self, nums: List[int]) -> List[int]: + ins_pos, next_pos = 0, 0 + + while ins_pos < len(nums) and next_pos < len(nums): + if nums[ins_pos] & 1 == 0: + ins_pos += 1 + next_pos = ins_pos + continue + + if nums[next_pos] & 1 == 0: + nums[ins_pos], nums[next_pos] = nums[next_pos], nums[ins_pos] + ins_pos += 1 + + next_pos += 1 + + return nums