双指针问题应用之二
来源:互联网 发布:淘宝钱柜数码怎么样 编辑:程序博客网 时间:2024/05/24 02:39
leetcode27题
问题描述
Given an array and a value, remove all instances of that value in place and return the new length.
The order of elements can be changed. It doesn't matter what you leave beyond the new length.
代码
有两种方式,一种方式是类似快排那样,两个指针同时向中间移动。代码如下:
class Solution {public: int removeElement(vector<int>& nums, int val) { if(nums.size()==0) return 0; int i=0; int j=nums.size()-1; while(true){ while(i<nums.size()&&nums[i]!=val) i++; while(j>=0&&nums[j]==val) j--; if(i<j){ int temp=nums[i]; nums[i]=nums[j]; nums[j]=temp; } else if(i>=nums.size()){ return nums.size(); } else if(j<0){ return 0; } else return j+1; } }};另一种是一个指针进行扫描,另一个指针记录当前不等于target值。代码如下:
class Solution {public: int removeElement(vector<int>& nums, int val) { int p=0; int i; for(i=0;i<nums.size();i++){ if(nums[i]!=val) nums[p++]=nums[i]; } return p; }};
0 0
- 双指针问题应用之二
- 指针的简单应用(二) 之指针与数组
- 指针高级应用(二)
- 指针之二详述
- 数据类型之二指针
- c++之指针二
- 函数指针的应用(二)
- 指针深度应用(二)
- 指针及其应用(二)
- 动态规划(二):应用举例之资源分配问题
- C++学习笔记(第六章 指针的应用 字符串 引用 之二)
- 成员函数指针的应用 之 仿写OC里面UIButton的回调机制(二)
- C++数据类型之二:指针
- 基本数据类型之二:指针
- C/C++指针之二
- IOS 学习之二指针
- 智能指针总结及应用(二)
- 正则应用之二
- CocosCreator的环境搭建连接android设备调试
- 查看Postgresql的连接状况,以及如何的去kill掉pg的连接
- [Java实现]Filbonacci斐波那契数列递归带来的问题和改进
- HTTP 1.1状态代码及其含义
- UML常用图的几种关系的总结
- 双指针问题应用之二
- 腾讯信鸽推送平台集成中的问题
- M2Eclipse:Maven Eclipse插件无法搜索远程库的解决方法
- Java 使用 Graphql , 搭建查询服务
- 使用原生js+jquery 对加载好的表格进行部分列的合并
- Java程序员应该掌握哪些东西?
- JavaScript基础
- Linux论坛
- FZU 1416 飞机加油问题(DP)