题目链接:https://leetcode.cn/problems/diao-zheng-shu-zu-shun-xu-shi-qi-shu-wei-yu-ou-shu-qian-mian-lcof/

题目解析
采用双指针的方式,两个指针分别从头和尾往中间遍历,左边开始找到偶数锁定下标,右边找到奇数锁定下标,然后进行交换,一直遍历到中间为止。
public int[] exchange(int[] nums) {
if (nums==null || nums.length <=1){
return nums;
}
int l = 0, r = nums.length - 1 , tmp = 0;
while (l < r){
while (l < r && nums[l] % 2 == 1){
l++;
}
while (l < r && nums[r] % 2 == 0){
r--;
}
//交换
tmp = nums[l];
nums[l] = nums[r];
nums[r] = tmp;
}
return nums;
}
复杂度分析
空间复杂度: O(1)。
时间复杂度: O(N)。
网友评论