力扣(leetcode)练习--283 移动零

简介: 力扣(leetcode)练习--283 移动零

要求:

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。

示例:

输入: [0,1,0,3,12]

输出: [1,3,12,0,0]

说明:

必须在原数组上操作,不能拷贝额外的数组。

尽量减少操作次数。

#include <iostream>
using namespace std;
int main() {
    //定义原数组
    int nums[5]={0,1,0,3,12};
  int i = 0,j = 0;
  //在数组中循环,当数字为非0时,将此数字赋值给数组第一位nums[0]
  //循环到第二个非0数字时,赋值给数组第二位nums[1]
  //j控制数组的赋值位,赋值后j自动加一,以便下一次的循环赋值
    for(i = 0 ; i < 5; i++)
    {
        if(nums[i] != 0)
        {
            nums[j++] = nums[i];
        }
    }
    //当循环完非0数字后,将所剩的位置,全部置0
    while(j < 5)
    {
        nums[j++] = 0;
    }
    //暂时未找到输出数组的好方法,只能用循环来取数字并加格式[,,]
    cout<<"[";
    for(int k=0,m=0;k<5;k++){
        cout<<nums[k];
        //int m=0;
        if(m<4){
            cout<<",";
            m+=1;
        }
    }
    cout<<"]";
}

输出结果:

1.png

相关文章
|
27天前
|
存储 SQL 算法
LeetCode力扣第114题:多种算法实现 将二叉树展开为链表
LeetCode力扣第114题:多种算法实现 将二叉树展开为链表
|
2月前
|
算法 C语言 容器
从C语言到C++_18(stack和queue的常用函数+相关练习)力扣(上)
从C语言到C++_18(stack和queue的常用函数+相关练习)力扣
26 0
|
5天前
2670.找出不同元素数目差数组-力扣(LeetCode)
2670.找出不同元素数目差数组-力扣(LeetCode)
5 0
|
5天前
|
索引
821.字符的最短距离-力扣(LeetCode)
821.字符的最短距离-力扣(LeetCode)
7 0
|
2月前
|
存储 前端开发 算法
从C语言到C++_18(stack和queue的常用函数+相关练习)力扣(下)
从C语言到C++_18(stack和queue的常用函数+相关练习)力扣
11 0
|
24天前
|
容器
【LeetCode刷题】栈和队列题目练习~
【LeetCode刷题】栈和队列题目练习~
|
27天前
|
算法 数据可视化 数据挖掘
最佳加油站选择算法:解决环路加油问题的两种高效方法|LeetCode力扣134
最佳加油站选择算法:解决环路加油问题的两种高效方法|LeetCode力扣134
|
27天前
|
存储 算法 数据可视化
LeetCode 力扣题目:买卖股票的最佳时机 IV
LeetCode 力扣题目:买卖股票的最佳时机 IV
|
27天前
|
存储 算法 数据可视化
LeetCode 力扣题目:买卖股票的最佳时机 III
LeetCode 力扣题目:买卖股票的最佳时机 III
|
27天前
|
存储 缓存 算法
LeetCode力扣题目111:多种算法对比实现二叉树的最小深度
LeetCode力扣题目111:多种算法对比实现二叉树的最小深度