`

[微软面试题]请把一个整形数组中重复的数字去掉

阅读更多
请把一个整形数组a中重复的数字去掉

方法一:
  for i=0 to n-1 do {
    hashtable.put(a[i],i);
  }
  for i=0 to hashtable.size-1 do {
    a[i]=hashtable.get[i];
  }

时间复杂度:O(n),空间复杂度:O(n)

方法二:
  e=findMax(a);
  用数组b记录0-e间数的出现次数;
  int i=0;
  int j=0;
  while(i<b.size) {
    if(b[i]!=0) {
      a[j++]=b[i];
    }
    b++;
  }

时间复杂度:O(n),空间复杂度:O(n)
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics