时间复杂度O(n),空间复杂度O(1)

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

http://www.nowcoder.com/questionTerminal/beb5aa231adc45b2a5dcc5b62c93f593

遍历数组,从0到n,如果是奇数,i++,如果是偶数,将这个偶数插入到数组末尾,然后删除这个偶数,
同时n--,确保不会出现全是偶数的情况下死循环或者遍历到了新插入的偶数上。

# -*- coding:utf-8 -*-
class Solution:
    def reOrderArray(self, array):
        # write code here
        n = len(array)
        i = 0
        while i < n:
            if array[i] % 2 == 1:
                i+=1
            else:
                array.append(array[i])
                del(array[i])
                n -= 1
        return array
全部评论
复杂度不止O(n)了
4 回复 分享
发布于 2020-04-24 10:14
速度挺慢的,大规模数据比冒泡算法慢多了。
点赞 回复 分享
发布于 2020-05-08 12:29
数组插入挺麻烦的吧
点赞 回复 分享
发布于 2020-12-05 10:39
O(n^2)了,del可是O(n)的操作
点赞 回复 分享
发布于 2020-12-25 16:34

相关推荐

09-29 17:44
已编辑
蔚来_测(准入职员工)
//鲨鱼辣椒:见不了了我实习了四个月上周再投筛选了一天就给我挂了
点赞 评论 收藏
分享
29 收藏 评论
分享
牛客网
牛客企业服务