[LeetCode]剑指 Offer 21. 调整数组顺序使奇数位于偶数前面
2023-09-11 14:18:49 时间
算法标签 双指针
题目简叙
思路
前后指针
使用指针判断奇数偶数,再进行交换
有点类似于快速排序中哨兵探路的思路
快慢指针
fast一直走 遇到吻合的数就和low交换 low++到下一个数去
代码
前后指针
class Solution {
public:
vector<int> exchange(vector<int>& nums) {
ios::sync_with_stdio(false);
int l=0,r=nums.size()-1;
while(l<=r){
if(!(nums[r]&1)){
r--;
continue;
}
else if(nums[l]&1){
l++;
continue;
}
swap(nums[l],nums[r]);
}
return nums;
}
};
快慢指针
class Solution {
public:
vector<int> exchange(vector<int>& nums) {
ios::sync_with_stdio(false);
int low=0,fast=0;
for(int i=0;i<nums.size();i++){
if(nums[fast]&1){
swap(nums[low],nums[fast]);
low++;
}
fast++;
}
return nums;
}
};
相关文章
- Leetcode: Contains Duplicate
- Leetcode: Best Time to Buy and Sell Stock II
- leetcode第一刷_Convert Sorted Array to Binary Search Tree
- LeetCode 67 Add Binary(二进制相加)(*)
- Leetcode 4.寻找两个正序数组的中位数(困难)
- JS leetcode 找到所有数组中消失的数字 题解分析
- JS leetcode 合并两个有序数组 解题分析
- 【python】leetcode 141. 环形链表
- [LeetCode]剑指 Offer 56 - II. 数组中数字出现的次数 II
- LeetCode动态规划基础题-总结(超级长文)
- LeetCode动态规划基础题-子字符串问题(13题)
- 202、【数组】leetcode ——2588. 统计美丽子数组数目(C++版本)
- 153、【动态规划】leetcode ——1049. 最后一块石头的重量 II:滚动数组(C++版本)
- [LeetCode] 1250. Check If It Is a Good Array 检查好数组
- [LeetCode] 1187. Make Array Strictly Increasing 使数组严格递增
- [LeetCode] 989. Add to Array-Form of Integer 数组形式的整数加法
- [LeetCode] 918. Maximum Sum Circular Subarray 环形子数组的最大和
- [LeetCode] Island Perimeter 岛屿周长
- [LeetCode] 325. Maximum Size Subarray Sum Equals k 最大子数组之和为k
- [LeetCode] 238. Product of Array Except Self 除本身之外的数组之积
- [LeetCode] 8. String to Integer (atoi) 字符串转为整数
- leetcode 474. Ones and Zeroes 一和零(中等)
- leetcode算法1.两数之和