C双指针元素去重

需求

在尾部插⼊、删除元素是⽐较⾼效的,时间复杂度 是 O(1),但是如果在中间或者开头插⼊、删除元素,就会涉及数据的搬移,时间复杂度为 O(N),效率较低。 

代码
#include <stdio.h>

// 相邻元素去重
int	removeDuplicates(int* nums, int n){
	if	(n	==	0)	return	0;
	int	slow	=	0,	fast	=	1;
	while	(fast	<	n)	{
		if	(nums[fast]	!=	nums[slow])	{
			slow++;
			//	维护	nums[0..slow]	⽆重复
			nums[slow]	=	nums[fast];
		}
		fast++;
	}
	//	⻓度为索引	+	1
	return	slow	+	1;
 }
 
 // 相同元素去重 set
 int toSet(int* nums, _Bool* flag, int n){
	if	(n	==	0)	return	0;
	int	slow	=	0,	fast	=	1;
	while	(fast	<	n)	{
        int  hashcode = nums[fast] % n;
		if	(nums[fast]	!=	nums[slow] && !flag[hashcode])	{
		    flag[hashcode] = 1;
			slow++;
			//	维护	nums[0..slow]	⽆重复
			nums[slow]	=	nums[fast];
		}
		fast++;
	}
	//	⻓度为索引	+	1
	return	slow	+	1;
 }
 
 
 void main() {
     int a[10] = {1, 1, 2, 2, 1, 1, 3, 1, 2, 2};
     int size = removeDuplicates(a, 10);
     for(int i = 0; i < size; ++i)
        printf("%d ", a[i]);
     printf("\n ");
     
    _Bool flag[10] = {0};    
    size = toSet(a, flag, 10);
    for(int i = 0; i < size; ++i)
        printf("%d ", a[i]);
     
 }
输出
1 2 1 3 1 2 
1 2 1 3

C双指针滑动窗口算法-CSDN博客


创作不易,小小的支持一下吧!

相关推荐

  1. LeetCode | 数组 | 指针法 | 27. 移除元素C++】

    2024-07-14 15:34:03       33 阅读
  2. 指针算法———C++

    2024-07-14 15:34:03       43 阅读
  3. Microsoft VBA Excel 单元格 重复元素

    2024-07-14 15:34:03       42 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-14 15:34:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-14 15:34:03       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-14 15:34:03       58 阅读
  4. Python语言-面向对象

    2024-07-14 15:34:03       69 阅读

热门阅读

  1. 代码随想录刷题day10

    2024-07-14 15:34:03       23 阅读
  2. Rust编程-I/O

    2024-07-14 15:34:03       17 阅读
  3. Lua协程(同步的多线程)

    2024-07-14 15:34:03       18 阅读
  4. 如何利用Gunicorn的日志记录监控Web应用

    2024-07-14 15:34:03       18 阅读
  5. AMD CPU加 vega 显卡运行ollama本地大模型

    2024-07-14 15:34:03       22 阅读
  6. 面试经验总结

    2024-07-14 15:34:03       25 阅读
  7. 14. DDL-约束的管理

    2024-07-14 15:34:03       19 阅读
  8. Spring Cloud

    2024-07-14 15:34:03       25 阅读