zoukankan      html  css  js  c++  java
  • LN : leetcode 283 Move Zeroes

    lc 283 Move Zeroes


    283 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.

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

    analysation##

    刚开始用了很蠢的方法,后来用STL很轻松就解决了!

    solution1:蠢

    void moveZeroes(vector<int> & nums) {
        if (nums.size() <= 1) {
            return;
        } else {
            int sum = 0;
            for (int i = 0; i < nums.size(); i++) {
                if (nums[i] != 0) {
                    nums[sum] = nums[i];
                    sum++;
                }
            }
            for (int i = sum; i < nums.size(); i++)
            nums[i] = 0;
        }
    }
    

    solution2:STL

    int size = nums.size();
    int pos = 0;
    for (int i = 0; i < size; i++) {
        if (nums[i] != 0) {
            int temp = nums[i];
            nums.erase(nums.begin() + i);
            nums.insert(nums.begin() + pos, temp);
            pos += 1;
        }
    }
    
  • 相关阅读:
    P1939 矩阵加速(数列)
    P3390 矩阵快速幂
    快速幂
    1236:区间合并
    1183:病人排队
    1230:寻找平面上的极大点
    1244:和为给定数
    1228 书架
    1222 放苹果
    洛谷5015标题统计
  • 原文地址:https://www.cnblogs.com/renleimlj/p/5492738.html
Copyright © 2011-2022 走看看