2023年9月28日 星期四

9/27 每日一題 (將數組依照奇、偶數排序)

 

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
class Solution:
    def sortArrayByParity(self, nums: List[int]) -> List[int]:
        nums.sort()
        odd=[]
        even=[]
        i=0
        while i < len(nums):
            if nums[i] % 2 ==1:
                odd.append(nums[i])
            else:
                even.append(nums[i])
            i+=1

        even.extend(odd)
       
        return even

-------------------------

class Solution:
    def sortArrayByParity(self, nums: List[int]) -> List[int]:
        left_index, right_index = 0, len(nums) - 1
        while(left_index < right_index):
            if(nums[left_index] % 2 != 0):
                if(nums[right_index] % 2 == 0):
                    nums[left_index], nums[right_index] = nums[right_index], nums[left_index]
                    left_index += 1
                    right_index -= 1
                else:
                    right_index -=1
            else:
                left_index += 1

        return nums

標籤:

0 個意見:

張貼留言

訂閱 張貼留言 [Atom]

<< 首頁