移除数组中的值

开始学习算法,先来一个简单的玩玩。
题目:在一个数组中移除指定的value,不能新建数组,返回新的数组长度。
大致思路:遍历数组,定义两个变量i,j,如果碰到了value,使用j记录位置,同时递增i,直到下一个非value出现,将此时i对应的值复制到j的位置上,增加j,重复上述过程直到遍历结束。这时候j就是新的数组长度。
public static int removeElement(int []A, int n, int elem) {
int j = 0;
for (int i = 0; i < n; i++) {
if (A[i] == elem) {
continue;
}

        A[j] = A[i];
        Log.d("wsk----", "int A[]==" + A[j] + "--j==" + j);
        j++;
    }
    Log.d("wsk----", "int A[]==" + Arrays.toString(A) + "--j==" + j);
    return j;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容