首页 > 试题广场 >

调整数组顺序使奇数位于偶数前面(二)

[编程题]调整数组顺序使奇数位于偶数前面(二)
  • 热度指数:21545 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
输入一个长度为 n 整数数组,数组里面可能含有相同的元素,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前面部分,所有的偶数位于数组的后面部分,对奇数和奇数,偶数和偶数之间的相对位置不做要求,但是时间复杂度和空间复杂度必须如下要求。

数据范围:,数组中每个数的值
要求:时间复杂度 ,空间复杂度
示例1

输入

[1,2,3,4]

输出

[1,3,2,4]

说明

[3,1,2,4]或者[3,1,4,2]也是正确答案 
示例2

输入

[1,3,5,6,7]

输出

[1,3,5,7,6]

说明

[3,1,5,7,6]等也是正确答案 
示例3

输入

[1,4,4,3]

输出

[1,3,4,4]
头像 牛客题解官
发表于 2022-04-25 19:15:30
精华题解 题目的主要信息: 输入一个长度为nnn的数组,经过调整使所有的奇数在前半部分,所有的偶数在后半部分 奇数与奇数之间、偶数与偶数之间的相对位置关系不固定 举一反三:** 学习完本题的思路你可以解决如下题目: JZ21. 调整数组顺序使奇数位于偶数前面(一) JZ22. 链表中倒数最后k个结点 JZ 展开全文
头像 空中转体一周半
发表于 2021-10-19 21:06:48
思路很简单,双指针,从数组两头向中间靠近。左边的为奇数指针,右边的为偶数指针。左边指针在没有遇到偶数时,就向右移动,遇到偶数立即停止;右边指针再没有遇到奇数时,向左边移动,遇到奇数时,进行奇偶指针元素交换。交换之后切换到奇数指针工作。这个方法只遍历一遍数组,时间o(n),空间o(1)。 import 展开全文
头像 Noone20
发表于 2022-03-10 17:21:05
function reOrderArrayTwo( array ) { // write code here return [...array.filter(i => i%2 === 1),...array.filter(i => i%2 === 0)] } module 展开全文
头像 摸鱼学大师
发表于 2021-12-01 10:32:14
题目的主要信息: 输入一个长度为nnn的数组,经过调整使所有的奇数在前半部分,所有的偶数在后半部分 奇数与奇数之间、偶数与偶数之间的相对位置关系不固定 要求:时间复杂度O(n)O(n)O(n),空间复杂度O(n)O(n)O(n) 方法一:复制法 具体做法: 可以准备一个待返回的长度为nnn的数组 展开全文
头像 代码界的小白
发表于 2021-12-11 18:03:18
题目主要信息 输入一个长度为 n 整数数组,数组里面可能含有相同的元素,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前面部分,所有的偶数位于数组的后面部分,对奇数和奇数,偶数和偶数之间的相对位置不做要求,但是时间复杂度和空间复杂度必须如下要求。 方法一:复制 具体方法 先遍历数组a 展开全文
头像 _Herc
发表于 2023-02-07 16:47:26
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param array int整型一维数组 * @param arrayLen int array数组长度 * @return(756076230) int整型一维数组 * @ret 展开全文
头像 clyycl
发表于 2023-10-03 19:14:36
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param array int整型vector * @return int整型vecto 展开全文
头像 已注销
发表于 2022-04-17 14:29:59
就是lambda表达式 import functools class Solution: def reOrderArrayTwo(self , array: List[int]) -> List[int]: f = lambda x,y:1 if not x%2 els 展开全文
头像 maomao666
发表于 2022-05-14 15:12:17
双指针,O(N),O(1) i即right指向奇数,left有两种可能,可能left == right, 或者left指向偶数,此时swap(left, right)即可 public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的 展开全文
头像 雾里看花花里看雾
发表于 2023-04-13 12:35:00
调整数组顺序使奇数位于偶数前面(二):最直观的想法是,双指针。使用变量i指向奇数,初始为0,使用变量j指向偶数,初始为n-1,当i小于j时执行循环,首先找到左边第一个偶数,再找到右边第一个奇数,然后交换两者,并将指针向内收缩。 vector<int> reOrderArrayTwo(ve 展开全文
头像 总之就是非常可爱
发表于 2022-05-04 16:32:13
class Solution { public:     /**      * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可      *   &nbs 展开全文

问题信息

上传者:牛客301499号
难度:
79条回答 4104浏览

热门推荐

通过挑战的用户

查看代码