时间复杂度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
O(n^2)了,del可是O(n)的操作
点赞 回复 分享
发布于 2020-12-25 16:34
数组插入挺麻烦的吧
点赞 回复 分享
发布于 2020-12-05 10:39
速度挺慢的,大规模数据比冒泡算法慢多了。
点赞 回复 分享
发布于 2020-05-08 12:29

相关推荐

2025-12-28 16:32
重庆邮电大学 Java
程序员花海:1.技能放最后,来面试默认你都会,技能没啥用 2.实习写的看起来没啥含金量,多读读部门文档,包装下 接LLM这个没含金量 也不要用重构这种 不会给实习生做的 3.抽奖这个还是Demo项目,实际在公司里面要考虑策略,满减,触发点,触发规则 库存 之类的,不是这个项目这么简单 4.教育背景提前,格式为 教育背景 实习 项目 技能 自我评价
简历被挂麻了,求建议
点赞 评论 收藏
分享
评论
29
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务