博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【leetcode】27.RemoveElement
阅读量:6997 次
发布时间:2019-06-27

本文共 697 字,大约阅读时间需要 2 分钟。

题目描述

给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。

解法1

时间复杂度:O(n)

空间复杂度:O(1)
思路:覆盖法,遍历数组,将非指定值放置在数组前方

int removeElement(vector
& nums, int val){ int j = 0; for (int i = 0; i < nums.size(); i ++) { if (nums[i] != val) { nums[j++] = nums[i]; } } return j; }

解法2

时间复杂度:O(n)

空间复杂度:O(1)
思路:第一种方法的改进,当i与j相等时,不需要赋值,避免多余的赋值操作。

int removeElement(vector
& nums, int val){ int j = 0; for (int i = 0; i < nums.size(); i ++) { if (nums[i] != val) { if (i != j) nums[j] = nums[i]; j ++; } } return j;}

转载于:https://www.cnblogs.com/JesseTsou/p/10322282.html

你可能感兴趣的文章
四象限分析法分析你是否适合做管理
查看>>
Create a database in mysql for mac
查看>>
史上最全、JavaScript基础篇
查看>>
Selenium Web 自动化 - Selenium常用API
查看>>
第13天:页面布局实例-博雅主页
查看>>
javascript基础
查看>>
jquery获取、改变元素属性值
查看>>
关闭VirtualBox虚拟机的时钟同步
查看>>
剪贴板(进程通信)
查看>>
删除链表中重复的结点
查看>>
查看你的电脑上.Net Framework版本的方法
查看>>
java编程目录
查看>>
Java读取xml
查看>>
swagger
查看>>
QFT URL
查看>>
phpcms二级菜单
查看>>
(4)pyspark---dataframe清理
查看>>
JS、PHP验证URL
查看>>
通过iscsi协议使用ceph rbd
查看>>
javascript 和 CoffeeScript 里的类
查看>>