Partition Array by Odd and Even
Partition an integers array into odd number first and even number second.
剑指offer的一道题,把所有奇数移动到偶数前面,其实是partition的双端解法,利用双指针。先检测两边合格的元素,都不合格,则交换,继续。
需要注意的是:
1.移动时,防止全部是偶数或者全部是奇数的情况,防止移动时越界。
2.交换时,仍然需要防止越界,全奇数或者全偶数,则left== right, 此时不应该交换。
3.注意判断奇偶时,利用位运算 &0x1(python 1)也可以。可以加速。
代码如下:
class Solution:# @param nums: a list of integers# @return: nothingdef partitionArray(self, nums):if not nums or len(nums) == 1:return left = 0right = len(nums) - 1while left < right:while left < right and nums[left] & 0x1 == 1:left += 1while left < right and nums[right] & 0x1 == 0:right -=1if left < right:nums[left],nums[right] = nums[right],nums[left]left += 1right -= 1return
转载于:https://www.cnblogs.com/sherylwang/p/5745740.html
Partition Array by Odd and Even相关推荐
- LintCode 373: Partition Array
LintCode 373: Partition Array 题目描述 分割一个整数数组,使得奇数在前偶数在后. 样例 给定[1, 2, 3, 4],返回[1, 3, 2, 4]. Thu Feb 23 ...
- Array with Odd Sum CodeForces - 1296A
You are given an array aa consisting of nn integers. In one move, you can choose two indices 1≤i,j≤n ...
- [Swift]LeetCode1013. 将数组分成和相等的三个部分 | Partition Array Into Three Parts With Equal Sum...
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...
- Array with Odd Sum(CF-1296A)
Problem Description You are given an array a consisting of n integers. In one move, you can choose t ...
- [Swift]LeetCode1043. 分隔数组以得到最大和 | Partition Array for Maximum Sum
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...
- [Algorithm]九章七:Two Pointer
604. Window Sum:点击打开链接 例如:[1,2,7,8,5], k=3 sum[0]=nums[0]+nums[1]+nums[2]=10 sum[1]=sum[0]-nums[0]+n ...
- java array 元素的位置_数据结构与算法:动态图解十大经典排序算法(含JAVA代码实现)...
点击上方"JAVA",星标公众号 重磅干货,第一时间送达 本文将采取动态图+文字描述+正确的java代码实现来讲解以下十大排序算法: 冒泡排序 选择排序 插入排序 希尔排序 归并排 ...
- 快排的两种partition函数
partition函数就是快排的关键部分,作用是将数组划分成两部分,左边小于基数,右边大于基数 但实际上它也不仅仅用于快排,在求top(K)问题中也常常会用到. 下面介绍两种partition函数,他 ...
- 《剑指offer》Partition函数及其Partition函数周边
Partion函数最早出现于快速排序算法,但其代表的分治思想,在<剑指offer>这本书中求数组中位数(面试题39,数组中出现次数超过一半的数字)中也有所涉及,将其汇总在一起,称之为P ...
最新文章
- java - 通用 CRUD(增、删、改、查)工具类,代码高效复用
- mac安装和使用boost库
- 国家计算机科学进展,主动网络安全的研究与进展
- sstream和strstream以及fstream
- mysql导出oracle_如何将mysql中的表结构导出放入oracle中
- docker 容器的常用命令及配置
- Python pandas使用
- Jrebel激活方法
- 数据-第16课-栈的应用实战二
- 操作系统——I/O设备
- JS字符串转换为JSON的四种方法
- 软考中级网络工程师证书如何查询?
- 易班显示不能连接到服务器检查网络,易班站内应用、轻应用、网站接入、移动应用的区别...
- 【Gitee】本地push代码成功,但是不计入贡献度贡献值,该怎么处理(已解决 同理github gitlab)
- 基于Springboot拦截器的AES报文解密
- 兴华苑社区关爱空巢老人社会实践
- 解决RuntimeError: stack expects a non-empty Tensorlist问题
- 【社区分享】专注移动端机器学习交流,TensorFlow Lite 中文兴趣小组招募中!
- python定界符有哪些_Python字符串
- 都1202年,我才知道 Tailwindcss
热门文章
- 无法打开、创建WEB项目,VS2003有寄生性?
- RabbitMq(二) Connection、Channels、Exchanges、Queues 等基本概念介绍
- Netty 服务 接收新数据
- (干货!)Tomcat性能优化
- MySQL高并发事务问题
- centos 卸载vsftp
- centos 搭建php运行环境
- 实战系列-使用Mybatis-Plus生成器生成代码
- Spring Boot:Exception parsing document: template=index, line 7 - column 3
- 年底了,按约定把2021 Go面试八股整理全了