zoukankan      html  css  js  c++  java
  • [leetCode]27.移除元素

    在这里插入图片描述

    解法一 暴力法

    定义一个指针i指向nums第一位,向后遍历,如果遇到nums[i]=val则将nums[i]之后的元素整体向前移动一位

    class Solution {
        public int removeElement(int[] nums, int val) {
            int len = nums.length;
            int i = 0;//定义一个i指针指向数组第一位
            for(; i < len;){
                if(nums[i] == val){//如果当前元素为val,将当前元素之后的元素向前移动
                    for(int j = i; j < nums.length - 1; j++){
                        nums[j]=nums[j+1];
                    }
                    len--;
                }else{//i++,得在这里控制i++
                    i++;
                }
            }
            return len;
        }
    }
    

    解法二 双指针法

    定义一个快指针j与慢指针i,一开始指向首元素。如果nums[j]==val,则递增j跳过该元素,如果nums[j]!=val则将nums[j]赋值给nums[i]

    class Solution {
        //双指针法
        public int removeElement(int[] nums, int val) {
            int i = 0;//指向数组首元素
            //j最开始指向首元素
            for(int j = 0; j < nums.length; j++){
                //j++跳过nums[j]=val的元素,
                if(nums[j]!=val){
                    nums[i] = nums[j];
                    i++;
                }
            }
            return i;
        }
    }
    

    解法三 双指针法 --移除较少元素

    当遇到 nums[i] = valnums[i]=val 时,可以将当前元素与最后一个元素进行交换,并释放最后一个元素。这实际上使数组的大小减少了 1。

    class Solution {
        //双指针法 --移除较少元素
        public int removeElement(int[] nums, int val) {
            int len = nums.length;
            int i = 0;//定义一个i指针指向数组第一位
            while(i < len){
                if(nums[i] == val){//如果当前元素为val,将最后一个元素赋值给当前元素
                    nums[i]=nums[len-1];
                    len--;
                }else{//i++,得在这里控制i++
                    i++;
                }
            }
            return len;
        }
    }
    
  • 相关阅读:
    vue-cli 安装一直失败
    如果不存在公缀,返回空字符串
    .sh文件格式问题dos转linux或unix
    Kettle串联多个Spark任务
    云效自动化部署+部署包备份
    云效分支管理
    云效IDE综合插件Alibaba Cloud Toolkit
    流水线自动化部署-中转部署-目标机器不联网情况下应用
    云效流水线自动化部署
    云效流水线自动发布到Maven仓
  • 原文地址:https://www.cnblogs.com/PythonFCG/p/13860027.html
Copyright © 2011-2022 走看看