算法题(2)

简介: 算法题(2)

题目

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。
请注意 ,必须在不复制数组的情况下原地对数组进行操作。

解题

function(nums) {
   
    let count = 0;
    for(let i=0;i<nums.length;i++){
   
        if(nums[i] === 0){
   
            nums.splice(i,1);
            i--;
            count++;
        }
    }
    for(let i=0;i<count;i++){
   
        nums.push(0);
} 

};

解析

题目需要在原数组上操作,删除数组的方法splice,使用count记录删除0的个数,最后再末尾添加。

相关文章
|
17天前
|
算法
算法题(4)
算法题(4)
35 6
|
16天前
|
算法
算法题(7)
算法题(7)
10 3
|
4月前
|
算法 定位技术
Hello 算法
Hello 算法
207 0
|
4月前
|
算法 C++ 容器
【C++11新算法】all_of、any_of、none_of算法
【C++11新算法】all_of、any_of、none_of算法
|
算法 索引
插值查找算法
插值查找算法
|
算法
海王算法(看完不会变成海王)
海王算法(看完不会变成海王)
153 0
海王算法(看完不会变成海王)
|
JavaScript 算法 前端开发
vueDiff 算法解读
前言 在面试中谈到 vue 源码,一般都会扯扯 diff 算法,而这个 diff 又在网上传的神乎其神的,说是提升了页面更新性能,我们一起看看到底咋回事吧
|
存储 机器学习/深度学习 人工智能
秒懂算法 | 分块算法
本篇内容包括了分块算法的思想的介绍、分块算法复杂度的分析以及相关例题。
323 0
秒懂算法 | 分块算法
|
算法
蚂群算法
蚂群算法
86 0
蚂群算法
|
算法
算法练习——(2)逢7过
中国朋友们聚会时喜欢玩"逢7过"的游戏,老外有个同样的游戏,FlipFlop,它从1计数到100,顺序输出。当遇到3的倍数就要说“Flip”,遇到5的倍数就要说“Flop”,既为3的倍数又为5的倍数则要说“FlipFlop”,说错的话表演节目或罚酒。
168 0