算法通关村第三关——数组白银挑战笔记

文章目录

    • 一、删除元素
      • [1.1 原地移除所有值等于val的元素](#1.1 原地移除所有值等于val的元素)
      • [1.2 删除有序数组中的重复项](#1.2 删除有序数组中的重复项)
    • 二、元素奇偶移动

一、删除元素

1.1 原地移除所有值等于val的元素

LeetCode 27.移除元素
解法1:快慢指针

java 复制代码
class Solution {
    public int removeElement(int[] nums, int val) {
        int fast=0;
        int slow=0;
        for(; fast<nums.length; fast++){
            if(nums[fast]!=val){
                nums[slow] = nums[fast];
                slow++;
            }
        }
        return slow;
    }
}

解法2:双指针+覆盖

java 复制代码
class Solution {
    public int removeElement(int[] nums, int val) {
        int left=0;
        int right=nums.length-1;
        while(left<=right){
            if(nums[left]==val){
                nums[left] = nums[right--];
            }else{
                left++;
            }
        }
        return left;
    }
}

1.2 删除有序数组中的重复项

LeetCode 26.删除有序数组中的重复项

java 复制代码
class Solution {
    public int removeDuplicates(int[] nums) {
        int slow = 1;
        for(int fast=0;fast<nums.length;fast++){
            if(nums[slow-1]!=nums[fast]){
                nums[slow]=nums[fast];
                slow++;
            }
        } 
        return slow;
    }
}

二、元素奇偶移动

LeetCode 905.按奇偶排序数组

java 复制代码
class Solution {
    public int[] sortArrayByParity(int[] nums) {
        int left = 0;
        int right = nums.length - 1;
        while(left<right){
            if(nums[left]%2==0) left++;
            else{
                if(nums[right]%2==1) right--;
                else {
                    int tmp = nums[left];
                    nums[left] = nums[right];
                    nums[right] = tmp;
                }
            }
        }
        return nums;
    }
}
相关推荐
Y幽谷客2 分钟前
图像识别入门习题整理
算法
夜郎king5 分钟前
基于 Java + Playwright 实现网站自动访问与数据采集(以腾讯云开发者社区为例)
java·playwright·网页数据获取
Anastasiozzzz9 分钟前
重新定义 Agent 基建:Redis 在现代 AI 与智能体系统中的工程实践
java·人工智能·redis·ai
careathers12 分钟前
【数据结构】队列
java·数据结构
步行cgn16 分钟前
Spring 通过 factory-method 实例化 Bean 详解与常见错误排查
java·后端
lv__pf17 分钟前
seata【实战 msb】
java·开发语言·后端
点纭18 分钟前
C 语言 第七章 常用函数(3)
c语言·开发语言·算法·oracle·c#
cxoptics35 分钟前
偏振片(起偏器/检偏器)怎么区分?
java
β添砖java41 分钟前
机器学习2 KNN算法、距离度量、特征预处理、超参数选择、手写数字、鸢尾花
人工智能·算法·机器学习
TAN-90°-1 小时前
Deep Learning for Computer Vision——Generative Models 2
人工智能·深度学习·神经网络·算法·目标检测·机器学习·计算机视觉