删除一维数组中重复的数字

删除一维数组中重复的数字

问:删去一维数组中所有相同的数,使之只剩一个。数组中的数已按由小到大的顺序排列,函数返回删除后数组中数
  1. 答:1、创建java类,TestEqual
    2、编写去重函数,
    public static int unique1(int[] nums) {
    if (nums.length == 0) {
                return 0;
            }
            Set<Integer> set = new HashSet<Integer>();
            int index = 0;
            for (int i = 0, len = nums.length; i < len; i++) {
                if (set.add(nums[i])) {
                    nums[index++] = nums[i];
                }
            }
            return index;
    }
    3、编写打印函数,
    public static void printNums(int[] nums, int length) {
    for (int i = 0; i < length - 1; i++) {
    System.out.print(nums[i] + " ");
    }
    System.out.println(nums[length - 1]);
    }
    4、初始化入参数据,int[] str = { 1, 1, 2, 3, 4, 4, 4, 5, 9, 9 },执行代码,consle输出踢重后数据,1,2,3,4,5,9,
  2. 答:#include<stdio.h>
    int fun(int *a,int n) { int i,j;
      for ( i=j=0;i<n;i++ ) if ( a[i]!=a[j] ) { j++; a[j]=a[i]; }
      return j+1;
    }
    void main() { int a[10]={1,1,2,3,4,4,4,5,9,9},i,n;
      for ( i=0;i<10;i++ ) printf("%d ",a[i]); printf("\n");
      n=fun(a,10);
      for ( i=0;i<n;i++ ) printf("%d ",a[i]); printf("\n");
    }
问:c语言:删去一维数组中所有相同的数, 使之只剩一个.求一完整正确程序
  1. 答:#include<stdio.h>
    int fun(int a[],int n)
    {
        int i,j=0;
        for(i=1;i<n;i++)
        {
            if(a[j]!=a[i])
                a[++j]=a[i];
        }
        return j;
    }
    void main()
    {
        int a[]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10};
        int len,i;
        len=fun(a,sizeof(a)/sizeof(int));
        for(i=0;i<=len;i++)
            printf("%d ",a[i]);
        printf("\n");
    }
     
问:编写程序在被调函数中删去一维数组中所有相同的数,使之只剩一个,被调函数返回删除后数组中的数据的个数
  1. 答:int main()
    {
    int a[20]={4,4,4,6,7,7,7,9,9,9,12,12,24,34,34,34,56,67,78,90};
    int i=0,j=0,k=0,b[20];//b[]为保存不相同的数组成员
    for(i=0;i<20;i++)//遍历每个数组成员
    {
    for(j=0;j<k;j++)//数组成员与不同数组成员比较
    {
    if(b[j]==a[i])//如果与不同数组比较有相同者,跳出,进行下一个数组成员比较
    break;
    }
    if(j==k)//如果与不同数组的成员都不同,则加入不同数组;
    {
    b[k]=a[i];
    k++;
    }
    }
    for(i=0;i<k;i++)
    printf("%d,",b[i]);
    getchar();
    return 0;
    }
删除一维数组中重复的数字
下载Doc文档

猜你喜欢