Javascript 设计模式系统讲解与应用

467 阅读1分钟

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;
    }
};