来个题目,提提神

小绵羊 2011-08-10 03:48:38
给定一个有序数组如{-1,-1,-1,0,0,0,1,1,1,1,2,2,2,2,5,5,5,5,6,6,6,7,7,7,7,7,8,8,8,9},在不使用任何现有api的方式下去掉数组中重复的数字得到一个新的数组如{-1,0,1,2,5,6,7,8,9}

很简单的一个题目,提提神,新手可以思考下,老手飘过
...全文
505 91 打赏 收藏 转发到动态 举报
写回复
用AI写文章
91 条回复
切换为时间正序
请发表友善的回复…
发表回复
dingding5060 2011-08-23
  • 打赏
  • 举报
回复
飘一下
豌豆 2011-08-11
  • 打赏
  • 举报
回复


public class SearchSame {


public static void main(String[] args) {
int ary[]={-1,-1,-1,0,0,0,1,1,1,1,2,2,2,2,5,5,5,5,6,6,6,7,7,7,7,7,8,8,8,9};

boolean a[]=new boolean[ary.length];

for(int i=0;i<ary.length;i++){
a[i]=true;
}
for(int i=0;i<ary.length-1;i++){
if(ary[i]==ary[i+1])a[i+1]=false;
}
int k=0;
for(int i=0;i<a.length;i++){
if(a[i]==true)k++;
}
int newary[]=new int[k];
int h; int l=0;

for( h=0;h<ary.length;h++){
if(a[h]==true){
newary[l]=ary[h];
l++;
}

}
for(int i=0;i<newary.length;i++){
System.out.println(newary[i]);
}
}

}


我勒个去,我只能说我已经尽力了。。
shine333 2011-08-11
  • 打赏
  • 举报
回复
那就继续出题目好了。
小绵羊 2011-08-11
  • 打赏
  • 举报
回复
阿宝忘了给分
Codefans_Fan 2011-08-10
  • 打赏
  • 举报
回复
飘过 看了这么多回复
shine333 2011-08-10
  • 打赏
  • 举报
回复
小绵羊唯一能优化的(虽然用了api),后面一次循环改用arraycopy,速度比循环快
小笨熊 2011-08-10
  • 打赏
  • 举报
回复
呵呵,很简单,飘过。。。
shine333 2011-08-10
  • 打赏
  • 举报
回复
ooops,竟然没看到这题目。先mark
simple_blue 2011-08-10
  • 打赏
  • 举报
回复
建个hash表,兄弟们多看看数据结构啊,
还有 7分钟下班!!!!
小绵羊 2011-08-10
  • 打赏
  • 举报
回复
还有十几分钟才下班唉
qybao 2011-08-10
  • 打赏
  • 举报
回复
try catch 应该不算api吧? 没有使用length

int[] a = {-1,-1,-1,0,0,0,1,1,1,1,2,2,2,2,5,5,5,5,6,6,6,7,7,7,7,7,8,8,8,9,9};
int count = 0;
for(int i=0;;i++) {
try {
if (a[i] != a[i+1]) {count++;}
} catch(Exception e) {
break;
}
}
int[] b = new int[count+1];
count = 0;
for(int i=1;;i++) {
try {
if (a[i] != a[i+1]) {b[count++]=a[i];}
} catch(Exception e) {
b[count] = a[i];
break;
}
}
System.out.println(Arrays.toString(b));
小绵羊 2011-08-10
  • 打赏
  • 举报
回复
[Quote=引用 79 楼 zl3450341 的回复:]

引用 78 楼 x19881216 的回复:

引用 77 楼 zl3450341 的回复:

引用 76 楼 x19881216 的回复:

引用 75 楼 alexandertech 的回复:

引用 73 楼 zl3450341 的回复:

这次也没啥好算法。。还不是3个循环。。。


绑着手脚游泳,大家姿势都差不多~

我的明明就只有2个循环


赶紧……
[/Quote]
zl3450341 2011-08-10
  • 打赏
  • 举报
回复
[Quote=引用 78 楼 x19881216 的回复:]

引用 77 楼 zl3450341 的回复:

引用 76 楼 x19881216 的回复:

引用 75 楼 alexandertech 的回复:

引用 73 楼 zl3450341 的回复:

这次也没啥好算法。。还不是3个循环。。。


绑着手脚游泳,大家姿势都差不多~

我的明明就只有2个循环


赶紧结账吧。。。一个题搞的我一下午又没做啥事

下班……
[/Quote]

申请100,做为陪你玩的一点补偿
小绵羊 2011-08-10
  • 打赏
  • 举报
回复
[Quote=引用 77 楼 zl3450341 的回复:]

引用 76 楼 x19881216 的回复:

引用 75 楼 alexandertech 的回复:

引用 73 楼 zl3450341 的回复:

这次也没啥好算法。。还不是3个循环。。。


绑着手脚游泳,大家姿势都差不多~

我的明明就只有2个循环


赶紧结账吧。。。一个题搞的我一下午又没做啥事
[/Quote]
下班结账
zl3450341 2011-08-10
  • 打赏
  • 举报
回复
[Quote=引用 76 楼 x19881216 的回复:]

引用 75 楼 alexandertech 的回复:

引用 73 楼 zl3450341 的回复:

这次也没啥好算法。。还不是3个循环。。。


绑着手脚游泳,大家姿势都差不多~

我的明明就只有2个循环
[/Quote]

赶紧结账吧。。。一个题搞的我一下午又没做啥事
小绵羊 2011-08-10
  • 打赏
  • 举报
回复
[Quote=引用 75 楼 alexandertech 的回复:]

引用 73 楼 zl3450341 的回复:

这次也没啥好算法。。还不是3个循环。。。


绑着手脚游泳,大家姿势都差不多~
[/Quote]
我的明明就只有2个循环
飞跃颠峰 2011-08-10
  • 打赏
  • 举报
回复
[Quote=引用 73 楼 zl3450341 的回复:]

这次也没啥好算法。。还不是3个循环。。。
[/Quote]

绑着手脚游泳,大家姿势都差不多~
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 zl3450341 的回复:]
我最喜欢小绵羊来散分了。
[/Quote]我也喜欢。
zl3450341 2011-08-10
  • 打赏
  • 举报
回复
[Quote=引用 72 楼 alexandertech 的回复:]

只用了length,没有用任何类和API
如果不许用length,catch Exception就可以了

Java code

int[] a = {-1,-1,-1,0,0,0,1,1,1,1,2,2,2,2,5,5,5,5,6,6,6,7,7,7,7,7,8,8,8,9};
boolean[] bs = new boolean[a.length];
……
[/Quote]

这次也没啥好算法。。还不是3个循环。。。
飞跃颠峰 2011-08-10
  • 打赏
  • 举报
回复
只用了length,没有用任何类和API
如果不许用length,catch Exception就可以了


int[] a = {-1,-1,-1,0,0,0,1,1,1,1,2,2,2,2,5,5,5,5,6,6,6,7,7,7,7,7,8,8,8,9};
boolean[] bs = new boolean[a.length];
for (int i=0; i<a.length; i++)
bs[i] = (i==0 || a[i]!=a[i-1])? true : false;
int id=0,count=0;
for (int i=0; i<bs.length; i++)
if (bs[i]) count++;
int[] result = new int[count];
for (int i=0; i<bs.length; i++)
if (bs[i]) {
result[id] = a[i];
id++;
}
for (int i=0; i<result.length; i++)
System.out.print(result[i] + " ");
加载更多回复(71)

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧