黑马程序员技术交流社区
标题:
做一个题(元素移除)遇到问题了,求帮忙
[打印本页]
作者:
冥夜
时间:
2014-11-9 20:46
标题:
做一个题(元素移除)遇到问题了,求帮忙
本帖最后由 冥夜 于 2014-11-10 14:32 编辑
rt,题目要求是依次输出n,数组A[n],del。n为数组内数据个数,del为要删除的数据,最后返回删除后剩余数据的个数。写了代码但是运行提示角标越界。。求哪里出错了
示例:
输入:2 3 1 3
输出:1
以下是代码
import java.util.ArrayList;
import java.util.Scanner;
public class Remove_9
{
public static void main(String[] args)
{
System.out.println(length());
}
public static int length()
{
Scanner input=new Scanner(System.in);
int n=input.nextInt();
int[] A=new int[n];
ArrayList al=new ArrayList();
for(int i=0;i<n;i++)
{
A[i]=input.nextInt();
al.add(A[i]);
}
int del=input.nextInt();
while(al.contains(del))
{
al.remove(del);
}
return al.size();
}
}
复制代码
作者:
冥夜
时间:
2014-11-9 21:15
- -找到问题了。。。第19行al.remove(del);中,因为remove方法有两种,一种是remove(int index)一种是remove(Object obj)。因为del是int类型所以默认删除del角标的数据所以出现了角标越界。。正确应该给del提升下类型。。。
作者:
hailong
时间:
2014-11-9 21:24
没有看明白你要实现什么功能,麻烦把要实现的功能说详细点
作者:
冥夜
时间:
2014-11-9 21:25
本帖最后由 冥夜 于 2014-11-9 21:27 编辑
hailong 发表于 2014-11-9 21:24
没有看明白你要实现什么功能,麻烦把要实现的功能说详细点
给定一个数组和一个数(该数不一定在数组中),从数组里删掉这个数字,返回剩下的数组长度。
如:A[] = {1, 2, 3, 4, 5}, 要删除数字3, 那么返回数组长度为4.
格式:
输入一个数n,继而输入一个数组A[n],接着输入要删除的元素elem,返回剩余数组长度index.
样例输入
2
3 3
3
样例输出
0就是最简单的删除,就是输入的是数组要进行转化。
作者:
郑飞
时间:
2014-11-11 05:06
可以直接数组搬家 过程中判断下转移的元素是不是目标元素 最后返回新数组长度
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2