博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode——27. Remove Element
阅读量:3527 次
发布时间:2019-05-20

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

1. 概述

Given an array and a value, remove all instances of that value in place and return the new length.

Do not allocate extra space for another array, you must do this in place with constant memory.

The order of elements can be changed. It doesn't matter what you leave beyond the new length.

Example:
Given input array nums = [3,2,2,3]val = 3

Your function should return length = 2, with the first two elements of nums being 2.

本题如上面所说的,你要返回一个数组和一个长度(答案检查中不管这个长度之后的元素),因而只需要使得到的数组在返回回来的长度内没有包含规定的数组就可以了。

2. 编码

2.1 方法1

这个方法的思想:从最后一个开始遍历,如果当前数不是规定的数,那么将其弹出并且添加到最前;如果等于规定的数,直接弹出
class Solution {public:    int removeElement(vector
& nums, int val) { int len(nums.size()); if(0 == len) return 0; //方法1 开销大 重新分配 for(int i=0; i
(nums.size()); }};
性能

2.2 方法2

这个方法的思想:填一个计数数字,从第一个开始遍历,如果当前数不是规定的数,那么将其赋值到计数位置的位置,计数加加;如果等于规定的数,不做操作
class Solution {public:    int removeElement(vector
& nums, int val) { int len(nums.size()); if(0 == len) return 0; //方法1 int count(0); auto it = nums.begin(); for(int i=0; i
性能

2.3 方法3

这个方法的思想:直接删除删除数组中规定的数字
class Solution {public:    int removeElement(vector
& nums, int val) { int len(nums.size()); if(0 == len) return 0; //方法3 int pos(0); while(true) { auto it = nums.begin(); if(nums[pos] == val) { nums.erase(it+pos); if(0 == nums.size()) break; pos = 0; continue; } ++pos; if(pos >= nums.size()) break; } return static_cast
(nums.size()); }};
性能
你可能感兴趣的文章
【PADS9.5】9,对比ECO核心板,Router移动元件后布线消失,Router找不到自动布线策略文件丢失或损坏
查看>>
【STM32+w5500汇总】23,HTTP_Client 连接到ONENET上传了一段数据之后会断开,数据上传格式的设置
查看>>
【STM32+W5500+MQTT】24,所有功能都可以通过API函数的调用来实现;HTTP接入ONENET,API开发手册和打包函数,串口软件HTTP连接服务器上传数据,2018年12月28日
查看>>
【STM32+W5500+HTTPClient】25,路由器DHCP租赁IP时间为2h,NetBios可以很好的解决IP变化的问题,DNS,2018年12月25日
查看>>
【STM32+MQTT+ONENET】26,MQTT协议接入OneNET
查看>>
【STM32+W5500+MQTT+ONENET】27,MQTT协议接入OneNET实际编程操作 2018年12月27日
查看>>
【STM32Cube+FreeRTOS 】28,KEIL5的F12不起作用;***JLink Error: Can not read register x while CPU is running
查看>>
【STM32CubeMX+FreeRTOS 】29,prtinf卡死;4任务只运行了3个;W5500联网失败(堆栈不能太大或者太小)
查看>>
【STM32+FreeRTOS +W5500移植要点】30,RTOS中断;从TIM2,主TIM3;RTOS主要用在LCD中;RT-Thread;标志重定义问题 2019年01月22日
查看>>
【STM32+FPGA+FSMC】31,FSMC熟练掌握;KEIL5生成bin文件;SDRAM的使用;IAP检验码 2019年04月10日
查看>>
【IC1】【转 非常好】运算放大器使用的六个经验
查看>>
【IC-ADC 3】ADC的选型
查看>>
2019年03月18日 查看数据手册的注意点,极限参数、电气参数、推荐参数
查看>>
HiKey960/970用户手册;HiKey960 Development Board User Manual
查看>>
【书籍推荐】FPGA,xilinx
查看>>
N9-SQL注入(union注入)
查看>>
N10-sql注入(information_schema注入)
查看>>
N1-Kali虚拟机中SQLmap
查看>>
N11-sql注入(http头注入)
查看>>
N2-sqlmap初使用
查看>>