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

【力扣题解】922. 按奇偶排序数组 II

😊博主目前也在学习,有错误欢迎指正😊
🌈保持热爱 奔赴星海🌈

文章目录

    • 一、题目
      • 1、题目描述
      • 2、基础框架
      • 3、原题链接
    • 二、解题报告
      • 1、思路分析
      • 2、代码详解
    • 三、本题知识

一、题目

1、题目描述

给定一个非负整数数组 nums, nums 中一半整数是 奇数 ,一半整数是 偶数 。
对数组进行排序,以便当 nums[i] 为奇数时,i 也是 奇数 ;当 nums[i] 为偶数时, i 也是 偶数 。
你可以返回 任何满足上述条件的数组作为答案 。

2、基础框架

  • c++版本框架代码如下:
class Solution {
public:
    vector<int> sortArrayByParityII(vector<int>& nums) {
        
    }
};

3、原题链接

链接

二、解题报告

1、思路分析

       (1)借鉴快排的思路,把数组中的元素分为偶数和奇数两个部分,偶数放在左边,奇数放在右边。
       (2)再次利用类似方法,把数组中的元素放到指定位置。

2、代码详解

	class Solution {
	public:
	    vector<int> sortArrayByParityII(vector<int>& nums) {
	        int n = nums.size();
	        int l = 0;
	        int r = n - 1;
	        while(l < r) {
	            while(l < r && nums[l]%2 == 0) l++;
	            while(l < r && nums[r]%2 == 1) r--;
	            swap(nums,l,r);
	        }
	        l = 0,r = n - 1;
	        while(l < r) {
	            while(l < r && l%2 == 0 && nums[l]%2 == 0) l++;
	            while(l < r && r%2 == 1 && nums[r]%2 == 1) r--;
	            swap(nums,l,r);
	            l++;
	            r--;
	        }
	        return nums;
	    }
	    void swap(vector<int>& nums,int l,int r) {
	        int t = nums[l];
	        nums[l] = nums[r];
	        nums[r] = t;
	    }
	};
//

三、本题知识

双指针


http://www.kler.cn/a/532810.html

相关文章:

  • 登录认证(5):过滤器:Filter
  • 刷题汇总一览
  • Deep Sleep 96小时:一场没有硝烟的科技保卫战
  • 信息学奥赛一本通 2111 【24CSPJ普及组】扑克牌(poker) | 洛谷 P11227 [CSP-J 2024] 扑克牌
  • GESP2023年9月认证C++六级( 第三部分编程题(2)小杨的握手问题)
  • 影视文件大数据高速分发方案
  • 蓝桥与力扣刷题(141 环形链表)
  • 鼠标拖尾特效
  • BUU17 [RoarCTF 2019]Easy Calc1
  • 游戏引擎学习第87天
  • P3078[USACO13MAR] Poker Hands S
  • leetcode——多数元素(java)
  • 使用mockttp库模拟HTTP服务器和客户端进行单元测试
  • 开发板上Qt运行的环境变量的三条设置语句的详解
  • 【R语言】获取数据
  • C++ Primer 多维数组
  • 【Uniapp-Vue3】iconfont图标库的使用
  • kubernetes 高可用集群搭建
  • 文献学习笔记:中风醒脑液(FYTF-919)临床试验解读:有效还是无效?
  • git进阶--1---HEAD、工作树和索引之间的区别与联系
  • git进阶--3---git pull和git fetch的区别与联系
  • git进阶--2---冲突的产生和解决
  • 第九篇:NoSQL 数据库与大数据
  • 【Unity踩坑】Unity项目管理员权限问题(Unity is running as administrator )
  • kubernetes-部署性能监控平台
  • Hive on Spark优化