let 课程地址 = " http://icourse8.com/javescript_shejimoshi.html ";章节目录
第1章 课程介绍
第2章 面向对象
第3章 设计原则
第4章 工厂模式
第5章 单例模式
第6章 适配器模式
第7章 装饰器模式
第8章 代理模式
第9章 外观模式
第10章 观察者模式
第11章 迭代器模式
第12章 状态模式
第13章 其他设计模式
第14章 综合应用
//不用保持数组原有顺序,双指针思路
class Solution {
public:
int removeElement(vector<int>& nums, int val)
{
if(nums.size()==0)
return 0;
int left=0;
int right=nums.size()-1;
while(left<right)
{
while(left<right && nums[right]==val)//右边找到第一个不为val的值
--right;
while(left<right && nums[left]!=val)//左边找到第一个是val的值
++left;
nums[left]=nums[right];
if(left<right)
nums[right]=val;
}
if(nums[left]==val)
return 0;
else
return left+1;
}
};