博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode 283. Move Zeroes
阅读量:6655 次
发布时间:2019-06-25

本文共 932 字,大约阅读时间需要 3 分钟。

第一次写的代码,实际效率是O(n)的,但判断多了一点。

void moveZeroes(vector
& nums) { int first_zero = 0; int first_num = 1; while (first_zero < first_num && first_num < nums.size()) { while (first_zero < nums.size() && nums[first_zero] != 0) first_zero++; while (first_num < nums.size() && (first_num <= first_zero || nums[first_num] == 0)) first_num++; if (first_num >= nums.size()) break; swap(nums[first_zero], nums[first_num]); first_zero++; first_num++; } }

其实可以很简洁:

void moveZeroes(vector
& nums) { int i = 0; int j = 0; while (i < nums.size()) { if (nums[i]) nums[j++] = nums[i]; i++; } while (j < nums.size()) nums[j++] = 0; }

  

转载于:https://www.cnblogs.com/willaty/p/8430586.html

你可能感兴趣的文章
Linux_日志信息
查看>>
Servlet容器如何同时来处理多个请求
查看>>
JMeter正则表达式-学习(3)
查看>>
关于网购心态
查看>>
09hibernate_session_flush
查看>>
ruby中文文档下载
查看>>
前端工程架构探讨
查看>>
书籍:Building Secure PHP Apps
查看>>
Oracle 查找带有CLOB字段的所有表
查看>>
KVC该机制
查看>>
Java数据结构——优先级队列
查看>>
转-Spring单例模式与线程安全
查看>>
Java提高篇——单例模式
查看>>
物理主机win 7系统迁移至VMware ESXI服务器
查看>>
java enum类
查看>>
C++继承:公有,私有,保护(转)
查看>>
一键部署WordPress开源内容管理系统
查看>>
实现Repeater控件的记录单选
查看>>
Http消息头中常用的请求头和响应头
查看>>
linux 进程通信
查看>>