首页 > 试题广场 >

编程实现删除数组中的重复元素。

[问答题]
编程实现删除数组中的重复元素。
#include <iostream>
using namespace std;
int de(int a[], int n)
{
    for (int i = 0; i < n; i++)
        for (int j = i + 1; j < n; j++)
            if (a[j] == a[i])
            {
                for (int k = j; k < n - 1; k++)
                    a[k] = a[k + 1];
                n--;
            }
    for ( i = 0; i < n; i++)
        cout << a[i] << " ";
    cout << endl;
    return 0;
}

int main ()
{
    int a[10];
    int m = 10;
    for (int l = 0; l < 10; l++)
        cin >> a[l];
    de(a, m);
    return 0;
}

发表于 2014-11-13 23:58:14 回复(1)
数组从后向前遍历,三个索引值 i j k,i j类似冒泡排序的索引值分别指向当前索引和即将对比值的索引。k指向数组的最后一个元素索引。 如果发现a[i]==a[j]则将a[j]赋值a[k],且k--。
发表于 2021-04-14 14:25:57 回复(1)
 /**
     * 编程实现删除数组的重复元素
     */
    public static int[] delReElement(int[] arr) {
        HashMap<Integer, Integer> map = new HashMap<>();
        int num = 0;
        for (int i = 0; i < arr.length; i++) {
            int e = arr[i];
            if (map.get(e) == null) {
                map.put(e, num);
                ++num;
            } else continue;
        }

        int[] result = new int[map.size()];
        map.forEach((k, v) -> {
            System.out.println("Key:" + k + "   Value:" + v);
            result[v] = k;
        });

        return result;
    }

发表于 2020-03-15 19:10:19 回复(0)
import java.util.*;

public class Main {


    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String string;
        while (scanner.hasNext()) {
            int n = scanner.nextInt();
            Set<Integer> numSet = new HashSet<>();
            for (int i = 0; i < n; i++) {
                numSet.add(scanner.nextInt());
            }
            for (Integer integer : numSet) {
                System.out.println(integer);
            }
        }
    }


}

发表于 2020-03-02 22:10:30 回复(0)
#include<iostream>
#include<unordered_set>
using namespace std;

int main()
{
 int a[10] = { 0,9,9,2,7,7,8,5,5,6 };
 unordered_set<int> set_tmp;
 unordered_set<int> sets;
 for (int i = 0;i < 10;i++)
  if (sets.insert(a[i]).second == false)
   set_tmp.insert(a[i]);
 for (auto iter = set_tmp.begin();iter != set_tmp.end();iter++)
  sets.erase(*iter);
 for (auto iter = sets.begin();iter != sets.end();iter++)
  cout << *iter <<' ';
 cout << endl;

 return 0;
}

发表于 2020-01-03 18:04:11 回复(0)
public class DeleteElement{
    public static void main(String[] args){
        Integer[] arr = {1,2,3,1,2,4,5,9};
        Set<Integer> set = new HashSet<Integer>();
         for(int i :arr){
            set.add(i);
        }
        System.out.print(set);
    }


}
发表于 2019-09-29 16:51:42 回复(0)
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class Main {
public static void main(String[] args) {
int a[] = {1,2,1,2,3,2,2,5,6,3,2,5,4};
Set<Integer> set = new HashSet<>();
for (int i = 0; i < a.length; i++) {
set.add(a[i]);
}
Iterator<Integer> iterator = set.iterator();
while(iterator.hasNext()){
Integer integer = iterator.next();
System.out.print(integer + " ");
}
}

}

发表于 2017-09-01 18:11:48 回复(0)
public static void main(String[] args) {

int []a = {1,2,122,3,1,5,9,8,5,6}; 
HashSet set = new HashSet();
for (int i = 0 ; i < a.length; i++){
set.add(a[i]);
}
Iterator item = set.iterator();
         while(item.hasNext()){
        System.out.println(item.next());
     }
}
发表于 2015-09-13 11:19:58 回复(0)
#include<iostream>
using namespace std;
int shanchu(int data[],int n)
{int temp[100]={0};//temp[]数组全部初始化为0
int j;
	for(int i=0;i<n;i++){
		for(j=i+1;j<n;j++){
		if(data[i]==data[j])
		temp[j]=1;//data[i]=data[j]时,对应的temp[j]赋值为1
		}}
	cout<<"处理后的数组为:";
	for(j=0;j<n;j++){
		if(temp[j]==0)//temp[j]=1对应的data[j]滤除掉,不输出
			cout<<data[j]<<" ";}
			cout<<endl;
	return 0;
}
int main()
{
	int data[100],i=0,n=0;
	cout<<"please input the array:";
	while(cin>>data[i++])n++;
	shanchu(data,n);
	return 0;
}

发表于 2015-08-20 14:55:38 回复(2)
    这个应该能实现
public static void main(String[] args) {
      int j=0;
      String a[]={"1","2","2","3"};
      Set<String> c=  new HashSet<String>();
      for(int i=0;i<a.length;i++){
       c.add(a[i]);
      }
      String b[]=new String[c.size()];
      for(String set:c){
       while(j<c.size()){
        b[j]=set;
        break;
       }
       j++;
         }
      for(int i=0;i<b.length;i++){
       System.out.println(b[i]);
      }
     }
发表于 2015-06-02 12:56:27 回复(0)