当前位置: 首页 > news >正文

【LeetCode】LCR 139. 训练计划 I

题目

教练使用整数数组 actions 记录一系列核心肌群训练项目编号。为增强训练趣味性,需要将所有奇数编号训练项目调整至偶数编号训练项目之前。请将调整后的训练项目编号以 数组 形式返回。

示例 1:

输入:actions = [1,2,3,4,5]
输出:[1,3,5,2,4]
解释:为正确答案之一

提示:

0 <= actions.length <= 50000
0 <= actions[i] <= 10000


题解

本题目考虑定义双指针解决。指针 i,j 分列数组左右两端,循环执行:

  • 指针i从左向右寻找偶数;
  • 指针j从右向左寻找奇数;
  • 将偶数actions[i]和 奇数actions[j]交换。

这样可始终保证: 指针 i 左边都是奇数,指针 j 右边都是偶数 。

在这里插入图片描述

通过对2取余可判断是不是奇数,此处可以使用位运算来快速取余 actions[i] & 1

class Solution(object):
    def trainingPlan(self, actions):
        """
        :type actions: List[int]
        :rtype: List[int]
        """
        i,j = 0, len(actions) - 1
        while i < j:
            while i < j and actions[i] % 2 == 1: i += 1
            while i < j and actions[j] % 2 == 0: j -= 1
            actions[i], actions[j] = actions[j], actions[i]

        return actions
  • 时间复杂度O(N): N为数组actions长度,双指针i,j共同遍历整个数组。
  • 空间复杂度O(1):双指针i,j使用常数大小的额外空间。

Reference

  1. https://leetcode.cn/problems/diao-zheng-shu-zu-shun-xu-shi-qi-shu-wei-yu-ou-shu-qian-mian-lcof/solutions/115087/mian-shi-ti-21-diao-zheng-shu-zu-shun-xu-shi-qi-4

相关文章:

  • SAP-工单技术性关闭操作手册
  • 【STM32学习】标准库实现STM32 ADC采集1路、2路、多路
  • JWT 令牌
  • top命令显示iowait (wa)非常高时怎么排查
  • 环境变量2
  • C# 背景 透明 抗锯齿 (效果很不错)
  • 清华大学DeepSeek最新研究报告《DeepSeek与AI幻觉》【附下载链接】
  • C++二叉树:数据的“家族树”与高效检索的奥秘
  • python subprocess库
  • 阿里云上的网站配置HTTPS
  • Ansys EMC Plus:HIRF 与飞机耦合演示
  • qsort介绍与实现
  • 【Python 学习 / 7】模块与文件操作
  • 一键部署开源DeepSeek并集成到钉钉
  • Python常见面试题的详解14
  • 为什么推荐B端做谷歌SEM?
  • Cursor实战:Web版背单词应用开发演示
  • 光学精密测量文献记录
  • Linux 多Python版本统一和 PySpark 依赖 python 包方案
  • 每日学习Java之一万个为什么
  • 受美关税影响,本田预计新财年净利下降七成,并推迟加拿大建厂计划
  • 第十届影像上海博览会落幕后,留给中国摄影收藏的三个问题
  • 视频丨美国两名男童持枪与警察对峙,一人还试图扣动扳机
  • SIFF动画单元公布首批片单:《燃比娃》《凡尔赛玫瑰》等
  • 广东韶关一镇干部冲进交通事故火海救人,获授“见义勇为”奖励万元
  • 小米SU7 Ultra风波升级:数百名车主要求退车,车主喊话雷军“保持真诚”