代码改变世界

Remove Duplicates from Sorted Array

2015-04-01 09:27  笨笨的老兔子  阅读(148)  评论(0编辑  收藏  举报

将一个排好序的数组中重复的数字删除

思路:维护头和尾指针,头指针始终指向最后一个不重复的数字,尾指针不断向数组尾部探索找到不重复的值之后将其拷贝到头指针

  1. class Solution {
  2. public:
  3. int removeDuplicates(int A[], int n) {
  4. if (n <= 1)
  5. {
  6. return n;
  7. }
  8. int count = 1, head = 0, tail = 1;
  9. while (tail < n)
  10. {
  11. while (A[tail] == A[head])
  12. tail++;
  13. if (tail < n)
  14. {
  15. A[++head] = A[tail++];
  16. count++;
  17. }
  18. }
  19. return count;
  20. }
  21. };