当前位置: 首页 > news >正文

【leetcode】移除元素

大家好,我是苏貝,本篇博客带大家刷题,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️
在这里插入图片描述


目录

  • 一.暴力求解法
  • 二.使用额外数组
  • 三.原地修改数组

点击查看题目

在这里插入图片描述

在这里插入图片描述

一.暴力求解法

若我们不考虑时间复杂度,第一想到的方法应该都是暴力求解法吧:遍历数组,如果数组元素=val,用后面的元素将之覆盖。比较简单也不符合题意,就不写代码了


二.使用额外数组

第二种方法不符合题意,但由于能启发第三种方法,所以简单介绍一下
先创建一个元素个数大于或等于nums数组的数组tmp,src和dst分别是数组nums和tmp的下标,初始化都=0,当nums[src]不等于val时,将之拷贝到tmp数组中,拷贝的位置为tmp[dst],再src++,dst++;当nums[src]等于val时,直接src++。
时间复杂度为O(N),空间复杂度为O(N)
在这里插入图片描述

三.原地修改数组

创建变量src和dst,它们都是数组nums的下标,初始化都为0,当nums[src]不等于val时,让nums[dst]=nums[src],再src++,dst++,相当于src位置的元素保留;当nums[src]等于val时,直接src++,相当于src位置的元素被移除

int removeElement(int* nums, int numsSize, int val) {int src=0;int dst=0;for(int i=0;i<numsSize;i++){if(nums[src]!=val){nums[dst++]=nums[src++];}else{src++;}}  return dst; 
}

好了,那么本篇博客就到此结束了,如果你觉得本篇博客对你有些帮助,可以给个大大的赞👍吗,感谢看到这里,我们下篇博客见❤️

http://www.lryc.cn/news/285066.html

相关文章:

  • Spring Boot整合Redis的高效数据缓存实践
  • FastApi-参数接收的正确使用(2)
  • 三、需求规格说明书(软件工程示例)
  • Elasticsearch 查询语句概述
  • kafka简单介绍和代码示例
  • 一次解决ForkJoinPool日志追踪的辛酸经历
  • VM使用教程--SDK取图 视频笔记
  • 11.spring boot 启动源码(一)
  • 【微服务】springcloud集成sleuth与zipkin实现链路追踪
  • 数学建模-预测人口数据
  • SpringBoot 集成 Canal 基于 MySQL 做数据同步
  • 【CVE-2022-22733漏洞复现】
  • Python爬虫---scrapy框架---当当网管道封装
  • 【机器学习】机器学习四大类第01课
  • 下述默认构造函数有什么问题?
  • vite和mockjs配合使用
  • 【数据结构】常见八大排序算法总结
  • 系统学英语 — 句法 — 常规句型
  • Github操作网络异常笔记
  • Vue3新特性defineModel()便捷的双向绑定数据
  • vue列表飞入效果
  • C语言·预处理详解
  • 服务器与普通电脑的区别,普通电脑可以当作服务器用吗?
  • 数字身份所有权:Web3时代用户数据的掌控权
  • python爬虫如何写,有哪些成功爬取的案例
  • PLC物联网网关BL104实现PLC协议转MQTT、OPC UA、Modbus TCP
  • explain工具优化mysql需要达到什么级别?
  • RHCE作业
  • 在Java中调企微机器人发送消息到群里
  • 鸿蒙开发(四)UIAbility和Page交互