【Leetcode刷题Python】剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
2023-09-14 09:13:02 时间
1 题目
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后半部分。
示例:
输入:nums = [1,2,3,4]
输出:[1,3,2,4]
注:[3,1,2,4] 也是正确的答案之一。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/diao-zheng-shu-zu-shun-xu-shi-qi-shu-wei-yu-ou-shu-qian-mian-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2 解析
(1)方法一
使用python内置的双端队列,队头和队尾都可以插入
(2)方法二
使用双指针,左边插入一个,左指针往右移动1,右边插入一个,右指针往左移动1
3 python 实现
(1)方法一
class Solution:
def exchange(self, nums: List[int]) -> List[int]:
import collections
d = collections.deque()
for i in nums:
if i%2==0:
d.append(i)
else:
d.appendleft(i)
return list(d)
(2)方法二
class Solution:
def exchange(self, nums: List[int]) -> List[int]:
n = len(nums)
res,left,right = [0]*n,0,n-1
for i in nums:
if i%2==0:
res[right] = i
right-=1
else:
res[left] = i
left +=1
return res
相关文章
- 工具推荐|利用python-cdo高效处理气象数据
- 【过程记录】python环境离线迁移
- Python 编程 | 连载 09 - 列表、元组和字符串切片
- python 基尼系数_Python计算
- pyqt ui设计_python pyqt5界面开发
- Python人员信息管理系统(当期末作业)
- python字符串转化列表_Python列表到字符串的转换[通俗易懂]
- python十进制转换_Python 进制转换
- python fileinput_Python之fileinput模块学习「建议收藏」
- python识别文字位置_如何利用Python识别图片中的文字
- python调试工具ipdb基本命令
- python中矩阵的转置_[转]Python中的矩阵转置[通俗易懂]
- python和Java语法对比
- python监控网站更新_Python 通过网站search功能监控网站内容更新[通俗易懂]
- python表情代码_Python实现表情包的代码实例[通俗易懂]
- 【说站】python列表清除元素的四种方式
- 【说站】Python如何用下标取得列表的单个值
- 用Python轻松制作一个股票K线图网站
- python分段线性插值_Python实现分段线性插值
- python机器学习库sklearn——朴素贝叶斯分类器[通俗易懂]
- 人生苦短,我用Python-手把手教你如何使用python写串口调试助手
- python爬取热搜评论数据
- python-Python与SQLite数据库-使用Python执行SQLite查询(二)
- python-Python与MongoDB数据库-使用Python执行MongoDB查询(二)
- 搞定!Linux下快速设置Python环境变量(linux设置python环境变量)
- Python玩转Redis:提升缓存效率(python使用redis)
- 如何在Linux上将Python脚本设置为后台运行?(linux后台运行python)
- 如何在Linux中安装Python?(linux安装python)
- Python编程连接MySQL:从零开始(python与mysql)
- Python与Linux:开启互联网信息技术时代(python和linux)
- Python与MySQL实现数据分析的完美组合(mysql中python)
- 盘点提高Python代码效率的方法