LeetCode解题 Day28

922. Sort Array By Parity II

https://leetcode.com/problems/sort-array-by-parity-ii/


题目解释

你会得到一组全是数字的阵列nums,其中一半是奇数,另外一半是偶数

请把阵列重新排列使nums的奇数项是奇数,偶数项是偶数,回传任一个符合条件的就可以

example

https://i.imgur.com/Ctlvhtt.png


解法

用两个变数odd, even分别记录奇数和偶数的起始位置,再建立一个大小刚好的阵列ans

接着用回圈读取阵列的每个数字,如果数字是奇数,就把奇数放到ans[odd],并且把odd加二,代表下个放奇数的位置;偶数是一样的判断

程序码

class Solution:
    def sortArrayByParityII(self, nums: List[int]) -> List[int]:
        even = 0
        odd = 1
        ans = [0] * len(nums)
        
        for num in nums:
            if num % 2 == 0:
                ans[even] = num
                even += 2
            else:
                ans[odd] = num
                odd += 2
        return ans

<<:  Day-13-Express 公测与产品的环境切分

>>:  不要为了 Unit Test 而写 Unit Test

Day 33 - 实作 S3 驱动 Lambda 函数进行镜像

Day 33 - 实作 S3 驱动 Lambda 函数进行镜像 AWS 有个教学课程,教学课程:使用...

[经典回顾]过旧的作业系统事故纪录

2018年司法院新闻稿 有关司法院及所属网路遭网军攻击事宜,本院说明如下: 一、事实经过:107年3...

Day21|【Git】合并分支 git merge 指令 、快转模式Fast Forward 、救回被砍掉的未合并分支方法

分支合并的方法有两种:merge 和 rebase 本篇先讲解使用 merge 来合并分支的观念。 ...

Day18 Web Server 相关扫描

网站服务器是恶意攻击者最常攻击的目标,因为在许多设备都会有 web 介面,常见的网站服务器为 apa...

Day 27 灰阶上色练习

灰阶上色是先将画面以黑白灰绘制结构後,再以此为基础,添加颜色。 有两种上色方法。 1. 图层混合模式...