黑马程序员技术交流社区

标题: 数组的问题,如何去除重复元素和去掉0? [打印本页]

作者: zippo    时间: 2014-7-31 20:51
标题: 数组的问题,如何去除重复元素和去掉0?
本帖最后由 zippo 于 2014-8-2 22:46 编辑

目前有数组” int[] arr =  {11,2, 4, 2, 10, 11},定义一个函数清除该数组的重复元素,返回一个没有重复元素而且不能出现0元素的数组。
只能用到数组的知识来做,求大神指点。


作者: 江苏孙浩    时间: 2014-7-31 21:04
先排序;然后转移到新数组里面,当然重复的只转移一次
作者: zippo    时间: 2014-7-31 21:16
江苏孙浩 发表于 2014-7-31 21:04
先排序;然后转移到新数组里面,当然重复的只转移一次

但是我要的结果只能是原来的顺序啊,不能排序。
作者: 韩天雷    时间: 2014-7-31 21:20
不能出现0元素 是指原来数组中有0也要去掉吗?
作者: 江苏孙浩    时间: 2014-7-31 21:35
zippo 发表于 2014-7-31 21:16
但是我要的结果只能是原来的顺序啊,不能排序。

那就先找出重复的,把重复的除了第一个外全部改为0.然后根据数组中非0元素的数目确定新数组的大小。最后把数组中非0元素移动到新数组里面。
作者: chulangren2    时间: 2014-7-31 21:45
我建议先做循环找出重复的去掉,顺便去掉0元素,再排序。
作者: fxwb2005    时间: 2014-7-31 21:47
不能出现0元素的数组是什么意思……  去重复可以用排序啊,如果不想改变排列顺序,就不交换位置,只是借助排序将每个数相比较,得到重复的数后,把重复那个数设为null就行了,不过数组好像不可以直接从中删除某个数,想实现删除工程,就先用排序找出重复的,把重复的设为null,再用if判断把数组中非null的成员移到另外一个数组中,就可以了……




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2