算法通关村第三关-白银挑战双指针思想

大家好我是苏麟 , 今天带来算法第三关 .

本期大纲

元素奇偶移动专题

描述 :

给你一个整数数组 nums,将 nums 中的的所有偶数元素移动到数组的前面,后跟所有奇数元素。

返回满足此条件的 任一数组 作为答案。

题目 :

LeetCode 905. 按奇偶排序数组 :

按奇偶排序数组

分析 :

我们可以采用对撞型双指针的方法,图示中的对撞型基本一致,只不过比较的对象是奇数还是偶数。如下图所示:
维护两个指针 left=0和 right=arr.ength-1,left从0开始逐个检查每个位置是否为偶数,如果是则跳过如果是奇数则停下来。然后right从右向左检查,如果是奇数则跳过偶数则停下来。然后交换array[left]和array[right]。之后再继续巡循环,直到left> =right。

解析 :

java 复制代码
class Solution {
    public int[] sortArrayByParity(int[] nums) {
        int left = 0;
        int right = nums.length - 1;
        while(left < right){
            if((nums[left] % 2) > (nums[right] % 2)){
                int temp = nums[left];
                nums[left] = nums[right];
                nums[right] = temp;
            }
            if(nums[left] % 2 == 0){
                left++;
            }
            if(nums[right] % 2 > 0){
                right--;
            }
        }
        return nums;
    }
} 

这期就到这里 , 下期见 !

相关推荐
灰灰勇闯IT5 分钟前
ops-memory:CANN Runtime 的 Tensor 内存管理
算法
叶子Talk19 分钟前
OpenAI破解80年数学猜想,AI首次做出原创证明
人工智能·数学·算法·机器学习·ai·openai·ai推理
MhZhou041233 分钟前
1.11M参数小模型实现脑瘤分割 CVPR 2026 Findings 开源
算法·计算机视觉·3d·空间计算
有为少年1 小时前
Welford算法 | 从单一到批次
大数据·人工智能·深度学习·神经网络·算法·机器学习
吴可可1231 小时前
Teigha处理CAD样条曲线的方法解析
数据库·算法·c#
啊董dong1 小时前
noi-2026年5月12号小测验
数据结构·c++·算法
不知名的忻1 小时前
红黑树(简易版)
算法·红黑树
NQBJT1 小时前
万字拆解 NeckFix:AI 脖子前倾检测的算法原理与工程实现
人工智能·算法
jaychouchannel1 小时前
Python 常用排序算法详解
算法
数智工坊1 小时前
【Inner Monologue论文阅读】: 首次将大语言模型嵌入机器人控制闭环,实现自我反思和动态行为调整
论文阅读·人工智能·算法·语言模型·机器人·无人机