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

Leecode力扣27数组移除元素

题目链接:力扣

最终可运行的代码1:暴力法

class Solution {
public:int removeElement(vector<int>& nums, int val) {int index=0;int num=nums.size();while(index<=nums.size()-1){if(nums[index]==val){int j=index;num--;while(j<=nums.size()-2){nums[j]=nums[j+1];j++;}//这里我没有写nums.pop_back(),会报超出时间限制的错误;nums.pop_back();}else{index++;}}return num;}
};

最终可运行的代码2:双指针法
 

class Solution {
public:int removeElement(vector<int>& nums, int val) {int index = 0; // 用于插入元素的指针for (int i = 0; i < nums.size(); i++) {if (nums[i] != val) {nums[index] = nums[i];index++;}}return index;}
};

卡哥的讲解中,用了for循环,i--和我while循环中的pop_back()也是一个道理!

// 时间复杂度:O(n^2)
// 空间复杂度:O(1)
class Solution {
public:int removeElement(vector<int>& nums, int val) {int size = nums.size();for (int i = 0; i < size; i++) {if (nums[i] == val) { // 发现需要移除的元素,就将数组集体向前移动一位for (int j = i + 1; j < size; j++) {nums[j - 1] = nums[j];}i--; // 因为下标i以后的数值都向前移动了一位,所以i也向前移动一位size--; // 此时数组的大小-1}}return size;}
};

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

相关文章:

  • 百度云盘发展历程与影响
  • SpringBoot复习:(33)WebMvcAutoconfiguration内部静态类WebMvcAutoConfigurationAdapter
  • f1tenth仿真2
  • exec族函数
  • dbm与mw转换
  • 【Linux】多线程之单例模式
  • Vision Transformer模型入门
  • 如何使用 Go 获取 URL 的参数,以及使用时的问题
  • Linux驱动-基于QT控制LED灯
  • 布隆过滤器的原理和应用场景
  • ElasticSearch学习
  • 软件测试基础篇——Redis
  • 大数据扫盲(1): 数据仓库与ETL的关系及ETL工具推荐
  • spring的aop动态代理对象注入时机
  • idea集成svn
  • RedisDesktopManage
  • 《Vue.js实战》——基础篇(1)
  • R语言 列表中嵌套列名一致的多个数据框如何整合为一个数据框
  • PyQt5利用QTextEdit控件输入多行文本
  • 【数据结构】二叉树常见题目
  • 树莓派使用 ENC28J60
  • 跟我学C++中级篇——模板友元的应用
  • 软件测试基础篇——MySQL
  • FreeRTOS(二值信号量)
  • leetcode面试题:动物收容所(考查对队列的理解和运用)
  • 【Linux命令行与Shell脚本编程】第十八章 文本处理与编辑器基础
  • 2023牛客暑期多校训练营7
  • centos7升级glibc2.28
  • 腾讯云香港服务器租用_2核2G20M_2核4G30M
  • 十三、ESP32PS2摇杆(ADC)