当前位置: 首页 > 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
http://www.dtcms.com/a/26198.html

相关文章:

  • 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之一万个为什么
  • 论文笔记-WSDM2024-LLMRec
  • 【核心算法篇十三】《DeepSeek自监督学习:图像补全预训练方案》
  • leetcode_位运算 67.二进制求和
  • 关于 BK3633 上电时受串口 UART2 影响而无法启动的问题说明
  • 开发一个交易所需要哪些技术
  • 分布式之分布式ID
  • C语言(21)
  • 掌握 ElasticSearch的 _source 过滤
  • LLM 学习2
  • 服务器创建conda环境并安装使用jupyter