LeetCode 面试题21. 调整数组顺序使奇数位于偶数前面

题目

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。

示例:

输入:nums = [1,2,3,4]

输出:[1,3,2,4]

注:[3,1,2,4] 也是正确的答案之一。

提示:

1 <= nums.length <= 50000

1 <= nums[i] <= 10000

解题思路

思路1-前后双指针夹逼遍历

步骤:

前后双指针,前指针遇到偶数停止,后指针遇到奇数停止;

互换值并推进一步继续校验直至相遇;

算法复杂度:

时间复杂度: $ {color{Magenta}{Omicronleft(nright)}} $

空间复杂度: $ {color{Magenta}{Omicronleft(1right)}} $

算法源码示例

package leetcode;

/**

* @author ZhouJie

* @date 2020年5月2日 下午10:34:47

* @Description: 面试题21. 调整数组顺序使奇数位于偶数前面

*

*/

public class LeetCode_Offer_21 {

}

class Solution_Offer_21 {

/**

* @author: ZhouJie

* @date: 2020年5月2日 下午10:38:07

* @param: @param nums

* @param: @return

* @return: int[]

* @Description: 1-左右指针夹逼校验互换;

*

*/

public int[] exchange(int[] nums) {

int left = 0, right = nums.length - 1;

while (left < right) {

while (left < right && nums[left] % 2 != 0) {

left++;

}

while (left < right && nums[right] % 2 == 0) {

right--;

}

if (left < right) {

nums[left] = nums[left] ^ nums[right];

nums[right] = nums[left] ^ nums[right];

nums[left] = nums[left] ^ nums[right];

left++;

right--;

}

}

return nums;

}

}

java 取数组的前90位,LeetCode 面试题21. 调整数组顺序使奇数位于偶数前面相关推荐

  1. 《LeetCode力扣练习》剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 Java

    <LeetCode力扣练习>剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 Java 一.资源 题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组 ...

  2. 【剑指offer - C++/Java】13、调整数组顺序使奇数位于偶数前面

    在线题目链接:调整数组顺序使奇数位于偶数前面 文章目录 1 题目描述 2 题目分析 2.1 方法1 2.11 Java代码 2.12 C++代码 2.2 方法2 2.21 Java代码 2.22 C+ ...

  3. 【LeetCode】剑指 Offer 21. 调整数组顺序使奇数位于偶数前面

    [LeetCode]剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 文章目录 [LeetCode]剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 一.双指针 一.双指针 解题思路: ...

  4. 《剑指offer》-- 调整数组顺序使奇数位于偶数前面、顺时针打印矩阵、数字在排序数组中出现的次数

    一.调整数组顺序使奇数位于偶数前面: 1.题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之 ...

  5. 面试 6:调整数组顺序使奇数位于偶数前面

    今天给大家带来的是 <剑指 Offer>习题:调整数组顺序使奇数位于偶数前面,纯 Java 实现希望大家多加思考. 面试题:输入一个整型数组,实现一个函数来调整该数组中的数字的顺序,使得所 ...

  6. 调整数组顺序使奇数位于偶数前面

    调整数组顺序使奇数位于偶数前面(点击链接进入题目) 描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数 ...

  7. 剑指offer:面试题21. 调整数组顺序使奇数位于偶数前面

    题目:调整数组顺序使奇数位于偶数前面 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 示例: 输入:nums = [1,2,3,4 ...

  8. 【剑指offer-Java版】14调整数组顺序使奇数位于偶数前面

    调整数组顺序使奇数位于偶数前面:遍历交换 特殊输入: 1) 只有一个数字 2) 全奇数或者全偶数 3) 空指针 4) 正常输入 考虑到扩展性,C++里面使用了函数指针来实现,但是对于java,可以采用 ...

  9. 【编程题目】调整数组顺序使奇数位于偶数前面

    54.调整数组顺序使奇数位于偶数前面(数组). 题目:输入一个整数数组,调整数组中数字的顺序,使得所有奇数位于数组的前半部分, 所有偶数位于数组的后半部分.要求时间复杂度为 O(n). 小题,秒灭. ...

最新文章

  1. java面向对象电子科大版答案_电子科大17秋《面向对象程序设计》在线作业1
  2. lc412. Fizz Buzz
  3. JSTS学习(一) - 简介
  4. 22. loacte命令
  5. boost::local_time模块实现自纪元以来的秒数的测试程序
  6. python 爬虫库 beautifulsoup4_Python爬虫之BeautifulSoup4
  7. java编写安卓程序代码,安卓:从Android的Java源代码code创建UML
  8. [html] HTML全局属性(global attribute)有哪些(包含H5)?
  9. 可信知识实证在UGC时代情报应用中的思考与探索
  10. VB版双语对照制作助手
  11. 用栈实现算术表达式 java_java的栈和用栈来解析算术表达式
  12. Filebeat 将多个日志输出到不同的 Kafka Topic
  13. linux 在字符界面中如何查看超出屏幕显示范围的内容
  14. PWM驱动sg90电机
  15. bootstrap-table导出excel科学计数法bug,数字过长变成科学计数法
  16. html怎么做成gif,(图解)如何制作gif动态图片
  17. glassfish 配置 mysql_GlassFish MySql连接池配置 | 学步园
  18. 6-1 读文章(*)
  19. 最近很火的ChatGPT和GPT4
  20. 元宇宙技术在几年后质变,迎来体验终端世界

热门文章

  1. tensorflow教程 一元线性回归
  2. 解决端口 windows10 端口被占用的问题
  3. windows10 中 安装 ffmpeg
  4. 【MySQL命令】远程连接、数据库备份
  5. 多尺度目标检测--Scale-Aware Trident Networks for Object Detection
  6. 目标检测--Wide-Residual-Inception Networks for Real-time Object Detection
  7. 大数据引擎启动时常见错误汇总
  8. ios 位置服务器,iOS 14 隐私保护:管理和控制共享的位置信息
  9. es6 日期字符串转日期_量化数据预处理-中文日期(含)转英文日期
  10. python 语音websocket_Python 牺牲性能以提升程序员的工作效率