zoukankan      html  css  js  c++  java
  • 删除数组中重复整数

     设计一个算法在一个包含有n个整数的数组a中,删除多余的重复整数。

    其思路是逐步扩大不重复区。算法开始假设a[0]为不重复区的唯一一个元素,用k指示,k永远指示不重复区的最后一个数据的索引。然后用i=1,2,....,n-1检测后面的每一个整数是否与不重复区中的整数有重复,若没有重复,将该整数放到不重复区的末尾,同时更新k(k+1,把该整数移动到k位置);若有重复则i+1继续检测下一个整数。

    int delRedundance(int a[], int n)
    {
    	int i, j, k=0;
    	for (i = 1; i < n; i++)
    	{
    		for (j = 0; j <= k; j++)
    			if (a[i] == a[j]) break;
    		if (j > k&&++k != i) 
    			a[k] = a[i];
    	}
    	for (i = 0; i <= k; i++) cout << a[i] << endl;
    	return k + 1;
    }
  • 相关阅读:
    CodeForces 460B
    CodeForces 456A
    CodeForces462B
    HDU1394(线段树||树状数组)
    HDU1541(树状数组)
    HDU1556(树状数组)
    HDU5726(RMQ&&二分)
    POJ1182(并查集)
    HDU4496(并查集)
    HDU3038(并查集)
  • 原文地址:https://www.cnblogs.com/oneDongHua/p/14264040.html
Copyright © 2011-2022 走看看