剑指Offer - 面试题21. 调整数组顺序使奇数位于偶数前面(双指针,原地算法)
1. 题目
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。
示例:
输入:nums = [1,2,3,4]
输出:[1,3,2,4]
注:[3,1,2,4] 也是正确的答案之一。提示:
1 <= nums.length <= 50000
1 <= nums[i] <= 10000
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/diao-zheng-shu-zu-shun-xu-shi-qi-shu-wei-yu-ou-shu-qian-mian-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 双指针原地解法
class Solution {public:vector<int> exchange(vector<int>& nums) {//odd奇数,even偶数int odd = nums.size()-1, even = 0;while(even < odd){while(even < odd && nums[even]%2 != 0)even++;//从前往后找到偶数while(even < odd && nums[odd]%2 == 0)odd--;//从后往前找到奇数swap(nums[even], nums[odd]);}return nums;}
};
剑指Offer - 面试题21. 调整数组顺序使奇数位于偶数前面(双指针,原地算法)相关推荐
- 剑指offer面试题21. 调整数组顺序使奇数位于偶数前面(双指针)
题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 思路 详见链接 代码 class Solution:def exchan ...
- 剑指offer面试题[14]-调整数组顺序使奇数位于偶数前面
题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. 分析: 这个题目的最 ...
- java 取数组的前90位,LeetCode 面试题21. 调整数组顺序使奇数位于偶数前面
LeetCode 面试题21. 调整数组顺序使奇数位于偶数前面 题目 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 示例: 输入 ...
- 剑指offer:面试题21. 调整数组顺序使奇数位于偶数前面
题目:调整数组顺序使奇数位于偶数前面 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 示例: 输入:nums = [1,2,3,4 ...
- 【剑指offer-Java版】14调整数组顺序使奇数位于偶数前面
调整数组顺序使奇数位于偶数前面:遍历交换 特殊输入: 1) 只有一个数字 2) 全奇数或者全偶数 3) 空指针 4) 正常输入 考虑到扩展性,C++里面使用了函数指针来实现,但是对于java,可以采用 ...
- 《LeetCode力扣练习》剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 Java
<LeetCode力扣练习>剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 Java 一.资源 题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组 ...
- 【LeetCode】剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
[LeetCode]剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 文章目录 [LeetCode]剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 一.双指针 一.双指针 解题思路: ...
- LeetCode-剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 思路一:使用快慢双指针 1: i找偶数找到了,继续往下执行,找不到i++ 2:j找奇数,找到了继续往下执行,找不到j– 3:最后交换 clas ...
- 【双100%解法】剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
立志用最少的代码做最高效的表达 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 示例: 输入:nums = [1,2,3,4] 输 ...
最新文章
- centos运行jar包需要的环境_Centos7服务器下启动jar包项目的最佳方法
- Struts2之ModelDriven
- c java 异常_javac -version 异常
- sftp 中文乱码 连接后_sftp服务器中文乱码
- 《敏捷企业》作者访谈录
- Python天气预报查询
- 大数据技术的发展方向
- python定义数据框大小_python – 如何设置框架的最小和最大高度或宽度?
- 楼宇智能化工程设计、施工、验收规范目录
- Design Tradeoffs for SSD Performance
- IV值和WOE值的理解
- 360隐私保护器直指腾讯QQ 360真的发飙了,百度旁观!
- 程序龙的密码(递归算法)
- 剖析钉钉:B端产品的C端化运营策略
- python 画图 平滑曲线_用Python平滑曲线
- php安装xmeet,XMeet下载-XMeet官方版下载V1.8.4-99wo下载站
- 滑模控制学习笔记(六)
- 主流的企业级虚拟化解决方案
- 每天不知道吃什么,于是我做了个随机选择的小程序
- PTA 直捣黄龙 (30 分)
热门文章
- redhat虚拟机安装
- C语言中#define的用法(转)
- C#中的DBNull、Null、String.Empty和“”
- SOCKET通信的基本步骤
- 选择排序 冒泡排序 二分查找
- oracle闪回某个时间点的数据库,oracle11g 使用闪回查询恢复表到过去某一个时间点...
- 计算机三级会保研加分吗,366所高校有保研资格,除了对成绩有要求外,还有哪些要求?...
- PHP json_encode后的数据有的大括号于中括号
- jQuery源码分析系列:事件模块概述
- CYQ.DBImport 数据库反向工程及批量导数据库工具 V2.0 发布[增加批量导出数据库脚本及数据库设计文档]...