• Leetcode-283: moveZeroes


     solution_1:

     1 class Solution {
     2 public:
     3     void moveZeroes(vector<int>& nums) {
     4         int k = 0; // k # number of zero element
     5         for(int i = 0; i < nums.size(); i++){
     6             if(nums[i] != 0){
     7                 nums[k++] = nums[i];
     8             }
     9         }
    10         for(; k < nums.size(); k++){
    11             nums[k] = 0;
    12         }
    13     }
    14 };

     solution_2:

     1 class Solution {
     2 public:
     3     void moveZeroes(vector<int>& nums) {
     4         int k = 0;
     5         for(int i = 0; i < nums.size(); i++){
     6             if(nums[i] != 0){
     7                 swap(nums[k++], nums[i]);
     8             }
     9         }
    10 
    11     }
    12 };

    solution_3:

     1 class Solution {
     2 public:
     3     void moveZeroes(vector<int>& nums) {
     4         vector<int> nonZeros;
     5         for(int i = 0; i < nums.size(); i++){
     6             if (nums[i])
     7                 nonZeros.push_back(nums[i]);
     8         }
     9         for(int i = 0; i < nonZeros.size(); i++){
    10             nums[i] = nonZeros[i];
    11         }
    12         for(int i = nonZeros.size(); i < nums.size(); i++){
    13             nums[i] = 0;
    14         }
    15     }
    16 };

    solution3 看似最蠢,其实是最快的

  • 相关阅读:
    Linux终端以及bash
    初识VIM
    基础命令
    目录结构和命令
    Xshell连接Centos7.5和yum
    Linux的发展史和centos7的安装
    学习方法以及计算机硬件基础
    mysql、MariaDB的简单操作
    yum 软件管理器
    基础面试题
  • 原文地址:https://www.cnblogs.com/fengcnblogs/p/13508898.html
Copyright © 2020-2023  润新知