object-C 解答算法:移动零(leetCode-283)

07-19 1697阅读

移动零(leetCode-283)

题目如下图:(也可以到leetCode上看完整题目,题号283)

object-C 解答算法:移动零(leetCode-283)

解题思路:

本质就是把非0的元素往前移动,接下来要考虑的是怎么移动,每次移动多少?

这里需要用到双指针,i 记录每次遍历的元素值, j 记录“非0元素值”需要移动到的位置;

当所有“非0元素值”都移动完了,j 的位置以及j后面的位置 都置为0即可.

代码如下:

- (NSMutableArray *)array:(NSMutableArray *)array
{
    int j = 0; //j的初始值为0
    for (int i = 0; i  

可以看到,以上代码的时间复杂度为 2n,根据大O渐进表示法,其最终的时间复杂度为n ,即 0(n).

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]