从数组中删除一个元素并替换为 0?

天证_

public static void remove (int[] arr, int toRemove)
“它应该从数组中删除 toRemove 值。剩下的元素应该移向数组的开头。(数组的大小不会改变)。由于数组现在使用的元素少了一个,原始的最后一个元素应该只用 0 替换。如果数组中有多个 toRemove 出现,则只应删除第一个出现。如果数组没有元素,它应该没有任何影响”。

到目前为止,我有这个:

public static void remove(int[] arr, int toRemove) {
    for(int i = 0; i <= arr.length - 1; i++) {
        if(arr[i] == toRemove) {
            arr[i] = arr[i + 1];
            arr[toRemove] = 0;
        }
    }
}

我有一个带有内容的数组的 main 方法:[3, 5, 7, 8, 12, 2]和一个电话说remove(array, 5). 但是,我的数组打印出来[3, 7, 7, 8, 12, 0],什么时候应该打印出来[3, 7, 8, 12, 2, 0]

有人可以让我知道我有什么问题并解释一下吗?

马尼什·吉里

这是一种方法,类似于我在上面的评论中描述的方法。

import java.util.Arrays;
public class main
{
    // tip: arguments are passed via the field below this editor
    public static void main(String[] args)
    {
        int[] arr = {3, 5, 7, 8, 5, 12, 2};
        remove(arr, 5);
        System.out.println(Arrays.toString(arr)); // [3, 7, 8, 5, 12, 2, 0]
    }

    public static void remove(int[] arr, int toRemove) {
        int idx = -1;
        // determine first occurrence of toRemove
        for(int i = 0; i < arr.length; i++) {
            if(arr[i] == toRemove) {
                idx = i;
                break;
            }
        }
        // if not found, return
        if(idx == -1) return;
        // shift other elements down
        for(int i = idx; i < arr.length-1; i++) {
            arr[i] = arr[i+1];
        }
        // set last element to 0
        arr[arr.length-1] = 0;
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

用数组中的下一个非零元素替换0

numpy 从数组中删除列中的第一个元素为 0 的列

将键0添加到数组PHP中的其他元素时,将删除第一个数组元素

检查熊猫是否数据框中的一个值是NaN并将其替换为0

顺序/递归地将矩阵中列的第一个数字元素替换为零,直到all = 0

通过比较项目的0索引来删除数组中的一个数组

R:随机采样向量中的一个非零元素,并用0替换其他元素

为什么将\ 0定义为C中char数组的第一个元素?

熊猫:如果最后一个非零值<0:替换为0

Notepad ++将IP地址中的最后一个八位位组(?)替换为0

如何计算int类型数组中的元素数量,其中0可以是一个元素?

在Python中将列表中的前20个元素替换为0

一个衬里提取IP地址,最后一个八位位组替换为0

熊猫:将第一个正数之前的col值替换为0?

将列中最后一个非零之前的所有值替换为0

列表推导将数组中的前n个项目替换为0

有条件地将选择查询中的值替换为1,如果另一个表中的值为0,则将其替换为0

如何使 for 循环遍历只有一个元素的数组(0-d 数组)

返回给定数组的一个版本的函数,其中数组中的每个零值都被 0 右侧的最小奇数值替换。在 C 中

是否有更快的方法可以在一维数组中将一个“0”随机交换为一个“1”?

我的选择排序将数组中的一些数字替换为0

从电话号码中删除前导“ 0”并替换为+44

如何将数组转换为0或1个元素?

将数组中的空字符串替换为0

在一个轴上的3D数组中查找最小值,并在python中用0替换另一个3D数组中的不对应值而没有循环

将 '\0' 放在 char[] 数组的最后一个元素之后是否安全?

如何将数组列表中的元素替换为另一个?

用值 0 替换特定列中的最后一个字符

嵌套在另一个SVG元素中的SVG元素的大小为0px * 0px