用数组的思维写出移除数组int[] arr = {1, 2, 3, 4, 5, 1, 9, 4, 12, 67, 1};中1这个元素,返回一个新的数组 (不带有1)。即新数组为int[] arr2 = {2, 3, 4, 5, 9, 4, 12, 67};
时间: 2023-09-23 07:06:18 浏览: 123
### 回答1:
```
int[] arr = {1, 2, 3, 4, 5, 1, 9, 4, 12, 67, 1};
int count = 0;
for (int i = 0; i < arr.length; i++) {
if (arr[i] != 1) {
arr[count++] = arr[i];
}
}
int[] arr2 = Arrays.copyOf(arr, count);
```
上面的代码使用一个变量count来记录不为1的元素个数,并将不为1的元素覆盖到原数组的前count个位置。最后使用Arrays.copyOf()方法复制一个新的数组arr2,长度为count。
### 回答2:
可以使用数组的思维来移除数组中的元素1。以下是一个用Java语言编写的示例代码:
```
public class RemoveElement {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4, 5, 1, 9, 4, 12, 67, 1};
int[] arr2 = removeElement(arr, 1);
// 输出新数组
for (int i : arr2) {
System.out.print(i + " ");
}
}
public static int[] removeElement(int[] arr, int target) {
int count = 0; // 统计目标元素的个数
for (int i : arr) {
if (i == target) {
count++;
}
}
int[] arr2 = new int[arr.length - count]; // 创建新数组
int index = 0; // 新数组的索引
for (int i : arr) {
if (i != target) {
arr2[index] = i;
index++;
}
}
return arr2;
}
}
```
运行以上代码会输出新数组 [2, 3, 4, 5, 9, 4, 12, 67]。代码首先遍历原始数组,统计目标元素的个数count,然后根据count创建一个新数组arr2。接下来再次遍历原始数组,将非目标元素放入新数组arr2中。最后返回新数组arr2。
阅读全文