[LintCode] Move Zeroes 移动零

简介:

Given an array nums, write a function to move all 0's to the end of it while maintaining the relative order of the non-zero elements.

Notice
  1. You must do this in-place without making a copy of the array.
  2. Minimize the total number of operations.
Example

Given nums = [0, 1, 0, 3, 12], after calling your function, nums should be [1, 3, 12, 0, 0].

LeetCode上的原题,请参见我之前的博客Move Zeroes

解法一:

class Solution {
public:
    /**
     * @param nums an integer array
     * @return nothing, do this in-place
     */
    void moveZeroes(vector<int>& nums) {
        for (int i = 0, j = 0; i < nums.size(); ++i) {
            if (nums[i]) {
                swap(nums[i], nums[j++]);
            }
        }
    }
};

解法二:

class Solution {
public:
    /**
     * @param nums an integer array
     * @return nothing, do this in-place
     */
    void moveZeroes(vector<int>& nums) {
        int left = 0, right = 0;
        while (right < nums.size()) {
            if (nums[right]) {
                swap(nums[left++], nums[right]);
            }
            ++right;
        }
    }
};

本文转自博客园Grandyang的博客,原文链接:移动零[LintCode] Move Zeroes ,如需转载请自行联系原博主。

相关文章
|
资源调度 前端开发
postcss-px-to-viewport 屏幕适配方案
postcss-px-to-viewport 屏幕适配方案
|
SQL 数据可视化 Linux
ClickHouse【环境搭建 03】Linux环境离线安装 clickhouse-22.3.3.44 配置参数说明+可视化界面使用(离线安装文件分享百度云盘)
ClickHouse【环境搭建 03】Linux环境离线安装 clickhouse-22.3.3.44 配置参数说明+可视化界面使用(离线安装文件分享百度云盘)
1178 0
|
JSON 前端开发 JavaScript
|
11月前
|
存储 安全 数据管理
区块链在医疗数据管理中的应用:安全与隐私的新纪元
区块链在医疗数据管理中的应用:安全与隐私的新纪元
771 16
|
前端开发 JavaScript 搜索推荐
计算机Java项目|基于SpringBoot的旅游网站的设计与实现
计算机Java项目|基于SpringBoot的旅游网站的设计与实现
1015 0
|
Windows
windows系统 如何查看端口占用情况并关闭占用的进程?
windows系统 如何查看端口占用情况并关闭占用的进程?
1293 0
|
关系型数据库 分布式数据库 数据库
沉浸式学习PostgreSQL|PolarDB 4: 跨境电商场景, 快速判断商标|品牌侵权
很多业务场景中需要判断商标侵权, 避免纠纷. 例如 电商的商品文字描述、图片描述中可能有侵权内容. 特别是跨境电商, 在一些国家侵权查处非常严厉. 注册公司名、产品名时可能侵权. 在写文章时, 文章的文字内容、视频内容、图片内容中的描述可能侵权. 例如postgresql是个商标, 如果你使用posthellogresql、postgresqlabc也可能算侵权. 以跨境电商为力, 为了避免侵权, 在发布内容时需要商品描述中出现的品牌名、产品名等是否与已有的商标库有相似. 对于跨境电商场景, 由于店铺和用户众多, 商品的修改、发布是比较高频的操作, 所以需要实现高性能的字符串相似匹配功能.
402 0
|
机器学习/深度学习 自然语言处理 机器人
智能客服:提高客户服务的创新技术
智能客服作为提高客户服务质量和效率的创新技术,正在不断改变商业和服务的方式。通过自然语言处理、机器学习和知识图谱等技术,智能客服能够为客户提供更好的服务体验,同时也为企业带来了更大的竞争优势。虽然智能客服在应用中还面临一些挑战,如情感分析和数据隐私,但随着技术的发展和完善,它将在未来持续发挥重要作用。
979 1
|
机器学习/深度学习 安全 网络安全
花无涯带你走进黑客世界之黑客红客
自从开始在网上写文章发表作品《网络黑白》之后,每发出一篇文章,我都会守在电脑前面一条条地看读者的评论。是想给初学者带给入门的知识技术学习的精华,相比一些其他的杂乱无序的书籍更值得推荐。以飞龙 王忘杰 昌维 黑色镰刀 冰尘等著名“喷子”,并不认识这群人,也从未进行过反击,那些并没有意义,我这里说的意义就是希望我写的东西能够对大家有那么一点帮助,我觉得这就够了,我愿和大家共同进步仅此而已。
398 0
统信UOS系统开发笔记(三):从Qt源码编译安装之编译安装Qt5.12.8
上一篇,是使用Qt提供的安装包安装的,有些场景需要使用到自己编译的Qt,所以本篇如何在统信UOS系统上编译Qt5.12.8源码。
统信UOS系统开发笔记(三):从Qt源码编译安装之编译安装Qt5.12.8