算法题(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的个数,最后再末尾添加。

相关文章
|
机器学习/深度学习 人工智能 自然语言处理
算法
算法
75 2
|
算法 C++ 计算机视觉
区域生长算法 C++实现
在比赛和项目中用opencv用多了,就会发现很多opencv没有实现的算法,其中一些还是十分常用,在教科书上经常出现的。作为一个弱鸡,有的简单的算法能够自己实现(比如本文所要讲的),有的写到一半就打出GG,有的直接就下不了手。
1954 0
|
3月前
|
算法
算法题(1)
算法题(1)
149 62
|
3月前
|
算法
算法题(6)
算法题(6)
29 7
|
3月前
|
算法
算法题(9)
算法题(9)
25 4
|
4月前
|
人工智能 算法 搜索推荐
什么是算法?一切皆算法
如果有人问我什么算法?我就一句话:算法就是对一类问题的最优求解路径。
|
5月前
|
存储 算法 网络安全
|
7月前
|
算法
多边形裁剪算法
多边形裁剪算法
|
6月前
|
算法
一道算法题
一道算法题
24 0
|
存储 并行计算 算法
FlashAttention算法详解
这篇文章的目的是详细的解释Flash Attention,为什么要解释FlashAttention呢?因为FlashAttention 是一种重新排序注意力计算的算法,它无需任何近似即可加速注意力计算并减少内存占用。所以作为目前LLM的模型加速它是一个非常好的解决方案,本文介绍经典的V1版本,最新的V2做了其他优化我们这里暂时不介绍。因为V1版的FlashAttention号称可以提速5-10倍,所以我们来研究一下它到底是怎么实现的。
570 0