2.1.1Remove Duplicates from Sorted Arr

Posted star-lit

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2.1.1Remove Duplicates from Sorted Arr相关的知识,希望对你有一定的参考价值。

 1 /*
 2 题目:2.1.1 Remove Duplicates from Sorted Array
 3 Given a sorted array, remove the duplicates in place such that each element appear only once
 4 and return the new length.
 5 Do not allocate extra space for another array, you must do this in place with constant memory.
 6 For example, Given input array A = [1,1,2],
 7 Your function should return length = 2, and A is now [1,2]
 8 */
 9 /*
10 分析:数组中元素去重问题
11 要求:不能申请新空间,需要在原来的数组空间上操作
12 思路:1、用两个指针指向前后两个元素
13     2、比较前后两个元素是否相同
14     3、不同则将后一个元素写入前一个指针所表示的数组中
15     4、直到数据末尾
16 
17 注:该方法只适合已排好顺序的数组
18 */
19 #include <stdio.h>
20 #include <stdlib.h>
21 
22 //写一个类,类里面的public成员中放这些函数(注意类的书写规范:1、类名大写 2、中括号后有分号)
23 class Solution{
24 public:         
25     //类内实现函数(区分类内定义,类外实现。作用域限定符的使用)
26     int removeDuplicates(int A[],int n){  //数组作为函数参数如何传递?
27         if(n == 0) return 0; //数组长度为零的情况
28 
29         int index = 0;
30         for(int i = 1;i < n;i++){
31             if(A[index] != A[i])
32                 A[++index] = A[i]; 
33         }
34         return index + 1;
35     }
36 };
37 int main()
38 {
39     int A[] = {1,2,2,3,5,7,7,8,};
40     Solution s1;
41     int n = s1.removeDuplicates(A,8);//数组传参,只用传递数组名
42 
43     printf("个数:%d\n",n);
44     for(int j =0;j < n;j++)
45         printf("%d ",A[j]);
46 
47     system("pause");
48     return 0;
49 }

 

以上是关于2.1.1Remove Duplicates from Sorted Arr的主要内容,如果未能解决你的问题,请参考以下文章

Remove Duplicates from Sorted Array

26. Remove Duplicates from Sorted Array

26. Remove Duplicates from Sorted Array

leetcode 26. Remove Duplicates from Sorted Array 80. Remove Duplicates from Sorted Array II

Remove Duplicates from Sorted Array [Python]

[Leetcode]-Remove Duplicates from Sorted Array