【LeetCode】剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
【LeetCode】剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
文章目录
- 【LeetCode】剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
- 一、双指针
一、双指针
解题思路:
考虑定义双指针 i,j 分列数组左右两端, 循环执行
- 指针 i 从左向右寻找偶数
- 指针 j 从右向左寻找奇数
- 将偶数 nums[i] 和奇数 nums[j] 交换
可始终保证:指针 i 左边都是奇数,指针 j 右边都是偶数
算法流程:
- 初始化:i,j 双指针,分别指向数组 nums 左右两端
- 循环交换:当 i = j 时跳出
- 指针 i 遇到奇数则执行 i = i + 1 跳过,直到找到偶数
- 指针 j 遇到偶数则执行 j = j - 1 跳过,直到找到奇数
- 交换 nums[i] 和 nums[j] 值
- 返回值:返回已修改的 nums 数组
class Solution {public int[] exchange(int[] nums) {int i = 0;int j = nums.length - 1;int temp = 0;while(i < j){while(i < j && (nums[i] & 1) == 1) i++;while(i < j && (nums[j] & 1) == 0) j--;temp = nums[i];nums[i] = nums[j];nums[j] = temp;}return nums;}
}
- 时间复杂度 O(n),n 为数组 nums 长度,双指针 i,j 共同遍历整个数组
- 空间复杂度 O(1),双指针 i,j 使用常数大小的额外空间
【LeetCode】剑指 Offer 21. 调整数组顺序使奇数位于偶数前面相关推荐
- Leetcode 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 (每日一题 20210917)
输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分.示例:输入:nums = [1,2,3,4] 输出:[1,3,2,4] 注:[3,1 ...
- 《LeetCode力扣练习》剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 Java
<LeetCode力扣练习>剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 Java 一.资源 题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组 ...
- 【双100%解法】剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
立志用最少的代码做最高效的表达 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分. 示例: 输入:nums = [1,2,3,4] 输 ...
- 剑指offer——21.调整数组顺序使奇数位于偶数前面
题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. 知识点: 保证相对位置 ...
- 【算法】剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
文章目录 1.概述 2,双指针 1.概述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数在数组的前半部分,所有偶数在数组的后半部分. 示例: 输入:nums = [1,2,3,4 ...
- 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 (快速排序partion操作应用)
借助一个额外的空间,空间复杂度O(N), 时间复杂度O(1) 快速排序partion操作,空间O(1), 不稳定 冒泡排序,O(n^2), 空间O(1) class Solution { publi ...
- LeetCode-剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
剑指 Offer 21. 调整数组顺序使奇数位于偶数前面 思路一:使用快慢双指针 1: i找偶数找到了,继续往下执行,找不到i++ 2:j找奇数,找到了继续往下执行,找不到j– 3:最后交换 clas ...
- 剑指Offer #13 调整数组顺序使奇数位于偶数前面 | 图文详解
题目来源:牛客网-剑指Offer专题 题目地址:调整数组顺序使奇数位于偶数前面 题目描述 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的 ...
- 《剑指offer》-- 调整数组顺序使奇数位于偶数前面、顺时针打印矩阵、数字在排序数组中出现的次数
一.调整数组顺序使奇数位于偶数前面: 1.题目: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之 ...
最新文章
- ubuntu14.04 安装 bcm43142无线网卡
- 自学转行成前端工程师,三面拿下字节跳动offer
- 如何根据对象获取到对应的表名_Hands-on! 如何给 TiDB 添加新系统表
- wxPython--学习笔记
- 数据结构习题之线性表
- Q96:PT(1):方格纹理(Checker)(1)——3D Checker
- gstreamer插件开发_测评丨高性能多媒体处理器—飞凌OKMX8MM-C开发板
- Windows核心编程笔记
- 分享一个强大的工具,可以快速查看自己公司网站或竞争对手网站的CDN情况
- 深入分析Linux自旋锁
- 微信人格专业测试软件,如何在微信公众号中关联《九型人格测试专业版》小程序?...
- 现代优化算法 之 遗传算法
- 航天金税税控盘启动故障解决
- Android申请权限(相机权限和读写权限)
- 巴比特 | 元宇宙每日必读:数字藏品二级市场乱象丛生,00后成新韭菜,监管迫在眉睫?...
- 极限、可导、可微、连续之间的关系
- 蓝桥杯实验4--按键之独立键盘(proteus仿真)
- 易飞ERP进货单源码——复制报价单
- fooview辅助功能 shell_fooView — 安卓最强大的悬浮球应用
- 开放式办公环境真是个糟糕的做法
热门文章
- elasticsearch 报表统计_螺丝ERP销售管理系统,螺丝企业专业管理统计
- java的封装和this关键字知识整理
- VS2010+OpenMP的简单使用
- 不同网段的PC与交换机的原理
- 让用户研究插上数据的翅膀
- jquery常用技巧及常用方法列表
- js获取页面URL地址并判断URL是否包含具体值
- linux grub error 22,Linux系統grub常見錯誤問題解決
- 华为ensp的缺省_华为模拟器 eNSP安装教程
- string 释放_由String,String Builder,String Buffer 引起的面试惨案