Python Leetcode(905.按奇偶排序数组)

给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。

你可以返回满足此条件的任何数组作为答案。

示例:

输入:[3,1,2,4]
输出:[2,4,3,1]
输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。

提示:

1 <= A.length <= 5000
0 <= A[i] <= 5000

Solution:(最开始的思路是遍历数组,对元素进行判断,奇数的话添加在结果列表后面,偶数的话插入在结果列表前面。)

class Solution(object):def sortArrayByParity(self, A):""":type A: List[int]:rtype: List[int]"""result = []for each in A:if each % 2 == 0:result.insert(0, each)else:result.append(each)return result
solution = Solution()
print(solution.sortArrayByParity([1, 3, 5, 4, 6, 7]))
[6, 4, 1, 3, 5, 7]

Solution:(看了题解之后,发现这道题可以理解成按奇偶性排序,利用双指针,前指针遇到奇数停下,后指针遇到偶数停下,然后交换。)

class Solution(object):def sortArrayByParity(self, A):""":type A: List[int]:rtype: List[int]"""start, end = 0, len(A)-1while start < end:if A[start] % 2 == 0:start += 1elif A[end] % 2 == 1:end -= 1else:A[start], A[end] = A[end], A[start]return A
solution = Solution()
print(solution.sortArrayByParity([1, 3, 5, 4, 6, 7]))
[6, 4, 5, 3, 1, 7]

Python Leetcode(905.按奇偶排序数组)相关推荐

  1. Leetcode 905. 按奇偶排序数组

    给定一个非负整数数组 A,返回一个由 A 的所有偶数元素组成的数组,后面跟 A 的所有奇数元素. 你可以返回满足此条件的任何数组作为答案. 示例: 输入:[3,1,2,4] 输出:[2,4,3,1] ...

  2. 905. 按奇偶排序数组

    1// 905. 按奇偶排序数组 2/** 3 * @param {number[]} A 4 * @return {number[]} 5 */ 6var sortArrayByParity = f ...

  3. LeetCode:922. 按奇偶排序数组 II

    922. 按奇偶排序数组 II 题目: 解题思路: 源码: 踩坑点: 题目: 解题思路: 维护俩个标记即可,每次让标记加2 源码: int* sortArrayByParityII(int* A, i ...

  4. leetcode 922. 按奇偶排序数组 II(双指针)

    给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数. 对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数:当 A[i] 为偶数时, i 也是偶数. 你可以返回任何满足上述条件的数组 ...

  5. int型 判断奇偶_905. 按奇偶排序数组

    905. 按奇偶排序数组 Loading...​leetcode-cn.com 给定一个非负整数数组 A,返回一个由 A 的所有偶数元素组成的数组,后面跟 A 的所有奇数元素. 你可以返回满足此条件的 ...

  6. 922. 按奇偶排序数组 II

    链接:922. 按奇偶排序数组 II 题解: class Solution {public:vector<int> sortArrayByParityII(vector<int> ...

  7. js 数组按奇偶拆分_力扣:按奇偶排序数组js

    给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素. 你可以返回满足此条件的任何数组作为答案. 示例: 输入:[3,1,2,4] 输出:[2,4,3,1] 输 ...

  8. LeetCode题 - 26 删除排序数组中的重复项 python实现

    题目 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成. 示 ...

  9. python有序数组中删除元素_python刷LeetCode:26. 删除排序数组中的重复项

    题目描述: 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成 ...

最新文章

  1. 组合特征(五)countvector(w)+doc(w)+hash(w)
  2. 使用mysql_使用MySQL
  3. nvcc 已退出,返回代码为1
  4. sqlalchemy根据表名动态创建model类
  5. 10分钟部署一个数据中心
  6. 【C语言位运算的应用】如何按bit位翻转一个无符号整型
  7. 二叉树删除节点+思路分析
  8. Java——线程的四种不同形式
  9. python计算机视觉2:图像边缘检测
  10. 区块链技术的发展现状_区块链的现状及其发展趋势
  11. matlab图像处理模板,求助,数字图像处理模板匹配
  12. SOA架构,面向信号怎么就不香了,以及工程师的四个技术维度:编程,架构,网络,工具
  13. c#整数数字转汉字一二三四五
  14. 【Linux】SCP 拷贝命令
  15. UCHome二次开发 规范
  16. 计算机ps基础知识大全,全国计算机ps一级考试题型
  17. 计算机卡慢解决方法,电脑慢的快速解决办法 四种方法电脑速度变快10倍
  18. 【搞定Go语言】第3天11:Gin框架介绍及使用
  19. 分析一下weiliu89的caffe-ssd代码吧
  20. surface go 安装纯AndroidX86系统

热门文章

  1. java项目-第71期基于ssm的化妆品商城系统【毕业设计】
  2. #4259. 越野赛车问题
  3. 欧拉角、万向节死锁理解
  4. 战斗胜佛,阿弥陀佛,菩提祖师,这就是你
  5. 获取加速传感器的值 APK
  6. Map集合中的Map.Entry的定义:
  7. blos设置具体解释
  8. 解决方案|电力行业应如何应对数字化转型危机
  9. 复习Java入门与基础语法生活【记录一个咸鱼大学生三个月的奋进生活】002
  10. C\C++ Qt开发的动态桌面壁纸程序