题目:输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分
//双指针,一个从前面走,一个从后面走
//前面遇到偶数停下来
//后面遇到奇数停下来
//交换,直到i = j
class Solution {
public int[] exchange(int[] nums) {
int i = 0;
int t = 0;
int j = nums.length-1;
while(i<j){
while(i<j&&nums[i]%2!=0){
//奇数
i++;
}
while(i<j&&nums[j]%2==0){
j--;
}
if(i<j){
t = nums[i];
nums[i] = nums[j];
nums[j] = t;
}
return nums;
}
}
本文介绍了一种使用双指针技术的高效算法,用于将数组中的奇数和偶数分别放置在数组的前半部分和后半部分。通过前后两个指针的移动和元素交换,实现了快速的奇偶分离。
467

被折叠的 条评论
为什么被折叠?



