做百度移动端网站软件,软件开发做平台,南京我爱我家网站建设新村二手房,做网站需要要多少钱【问题描述】[简单]
输入一个整数数组#xff0c;实现一个函数来调整该数组中数字的顺序#xff0c;使得所有奇数位于数组的前半部分#xff0c;所有偶数位于数组的后半部分。示例#xff1a;输入#xff1a;nums [1,2,3,4]
输出#xff1a;[1,3,2,4]
注#xff1a;[…【问题描述】[简单]
输入一个整数数组实现一个函数来调整该数组中数字的顺序使得所有奇数位于数组的前半部分所有偶数位于数组的后半部分。示例输入nums [1,2,3,4]
输出[1,3,2,4]
注[3,1,2,4] 也是正确的答案之一。
【解答思路】
1. 双指针 时间复杂度O(N) 空间复杂度O(1)
class Solution {public int[] exchange(int[] nums) {int i 0, j nums.length - 1, tmp;while(i j) {while(i j (nums[i] 1) 1) i;while(i j (nums[j] 1) 0) j--;tmp nums[i];nums[i] nums[j];nums[j] tmp;}return nums;}
}
【总结】
1.交换两个数
nums[left] ^ nums[right];
nums[right] ^ nums[left];
nums[left] ^ nums[right];tmp nums[i];nums[i] nums[j];nums[j] tmp;2.数组题目 需要交互 双指针思路时刻牢记
3.数组题目 边界边界判断
转载链接https://leetcode-cn.com/problems/diao-zheng-shu-zu-shun-xu-shi-qi-shu-wei-yu-ou-shu-qian-mian-lcof/solution/mian-shi-ti-21-diao-zheng-shu-zu-shun-xu-shi-qi-4/