A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zippo 中级黑马   /  2014-7-31 20:51  /  1210 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 zippo 于 2014-8-2 22:46 编辑

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

6 个回复

倒序浏览
先排序;然后转移到新数组里面,当然重复的只转移一次
回复 使用道具 举报
江苏孙浩 发表于 2014-7-31 21:04
先排序;然后转移到新数组里面,当然重复的只转移一次

但是我要的结果只能是原来的顺序啊,不能排序。
回复 使用道具 举报
不能出现0元素 是指原来数组中有0也要去掉吗?
回复 使用道具 举报
zippo 发表于 2014-7-31 21:16
但是我要的结果只能是原来的顺序啊,不能排序。

那就先找出重复的,把重复的除了第一个外全部改为0.然后根据数组中非0元素的数目确定新数组的大小。最后把数组中非0元素移动到新数组里面。
回复 使用道具 举报
我建议先做循环找出重复的去掉,顺便去掉0元素,再排序。
回复 使用道具 举报
不能出现0元素的数组是什么意思……  去重复可以用排序啊,如果不想改变排列顺序,就不交换位置,只是借助排序将每个数相比较,得到重复的数后,把重复那个数设为null就行了,不过数组好像不可以直接从中删除某个数,想实现删除工程,就先用排序找出重复的,把重复的设为null,再用if判断把数组中非null的成员移到另外一个数组中,就可以了……
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马