Welcome to Subscribe On Youtube
-
/** 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. Note: 2 <= A.length <= 20000 A.length % 2 == 0 0 <= A[i] <= 1000 */ public class Sort_Array_By_Parity_II { class Solution { public int[] sortArrayByParityII(int[] A) { int j = 1; for (int i = 0; i < A.length; i += 2) if (A[i] % 2 == 1) { // find next odd-value index while (A[j] % 2 == 1) { j += 2; } // Swap A[i] and A[j] int tmp = A[i]; A[i] = A[j]; A[j] = tmp; } return A; } } } ############ class Solution { public int[] sortArrayByParityII(int[] nums) { for (int i = 0, j = 1; i < nums.length; i += 2) { if ((nums[i] & 1) == 1) { while ((nums[j] & 1) == 1) { j += 2; } int t = nums[i]; nums[i] = nums[j]; nums[j] = t; } } return nums; } }
-
// OJ: https://leetcode.com/problems/sort-array-by-parity-ii/ // Time: O(N) // Space: O(1) class Solution { public: vector<int> sortArrayByParityII(vector<int>& A) { for (int i = 0, j = 1, N = A.size(); i < N && j < N; i += 2, j += 2) { while (i < N && A[i] % 2 == 0) i += 2; while (j < N && A[j] % 2 != 0) j += 2; if (i < N) swap(A[i], A[j]); } return A; } };
-
class Solution: def sortArrayByParityII(self, nums: List[int]) -> List[int]: n, j = len(nums), 1 for i in range(0, n, 2): if (nums[i] & 1) == 1: while (nums[j] & 1) == 1: j += 2 nums[i], nums[j] = nums[j], nums[i] return nums ############ class Solution(object): def sortArrayByParityII(self, A): """ :type A: List[int] :rtype: List[int] """ odd = [x for x in A if x % 2 == 1] even = [x for x in A if x % 2 == 0] res = [] iseven = True while odd or even: if iseven: res.append(even.pop()) else: res.append(odd.pop()) iseven = not iseven return res
-
func sortArrayByParityII(nums []int) []int { for i, j := 0, 1; i < len(nums); i += 2 { if (nums[i] & 1) == 1 { for (nums[j] & 1) == 1 { j += 2 } nums[i], nums[j] = nums[j], nums[i] } } return nums }
-
/** * @param {number[]} nums * @return {number[]} */ var sortArrayByParityII = function (nums) { for (let i = 0, j = 1; i < nums.length; i += 2) { if ((nums[i] & 1) == 1) { while ((nums[j] & 1) == 1) { j += 2; } [nums[i], nums[j]] = [nums[j], nums[i]]; } } return nums; };
-
class Solution { public int[] sortArrayByParityII(int[] A) { int length = A.length; int[] sorted = new int[length]; int evenIndex = 0, oddIndex = 1; for (int i = 0; i < length; i++) { int num = A[i]; if (num % 2 == 0) { sorted[evenIndex] = num; evenIndex += 2; } else { sorted[oddIndex] = num; oddIndex += 2; } } return sorted; } } ############ class Solution { public int[] sortArrayByParityII(int[] nums) { for (int i = 0, j = 1; i < nums.length; i += 2) { if ((nums[i] & 1) == 1) { while ((nums[j] & 1) == 1) { j += 2; } int t = nums[i]; nums[i] = nums[j]; nums[j] = t; } } return nums; } }
-
// OJ: https://leetcode.com/problems/sort-array-by-parity-ii/ // Time: O(N) // Space: O(1) class Solution { public: vector<int> sortArrayByParityII(vector<int>& A) { for (int i = 0, j = 1, N = A.size(); i < N && j < N; i += 2, j += 2) { while (i < N && A[i] % 2 == 0) i += 2; while (j < N && A[j] % 2 != 0) j += 2; if (i < N) swap(A[i], A[j]); } return A; } };
-
class Solution: def sortArrayByParityII(self, nums: List[int]) -> List[int]: n, j = len(nums), 1 for i in range(0, n, 2): if (nums[i] & 1) == 1: while (nums[j] & 1) == 1: j += 2 nums[i], nums[j] = nums[j], nums[i] return nums ############ class Solution(object): def sortArrayByParityII(self, A): """ :type A: List[int] :rtype: List[int] """ odd = [x for x in A if x % 2 == 1] even = [x for x in A if x % 2 == 0] res = [] iseven = True while odd or even: if iseven: res.append(even.pop()) else: res.append(odd.pop()) iseven = not iseven return res
-
func sortArrayByParityII(nums []int) []int { for i, j := 0, 1; i < len(nums); i += 2 { if (nums[i] & 1) == 1 { for (nums[j] & 1) == 1 { j += 2 } nums[i], nums[j] = nums[j], nums[i] } } return nums }
-
/** * @param {number[]} nums * @return {number[]} */ var sortArrayByParityII = function (nums) { for (let i = 0, j = 1; i < nums.length; i += 2) { if ((nums[i] & 1) == 1) { while ((nums[j] & 1) == 1) { j += 2; } [nums[i], nums[j]] = [nums[j], nums[i]]; } } return nums; };