题目链接:点击打开链接
题目大意:略
解题思路:略
相关企业
- 字节跳动
AC 代码
- Java
// 解决方案(1)
class Solution {
public int[] exchange(int[] nums) {
int len = nums.length;
List l1 = new ArrayList<>();
List l2 = new ArrayList<>();
for (int i = 0; i < len; i++) {
if (nums[i] % 2 != 0) {
l1.add(nums[i]);
} else {
l2.add(nums[i]);
}
}
l1.addAll(l2);
int[] rs = new int[len];
for (int i = 0; i < l1.size(); i++) {
rs[i] = l1.get(i);
}
return rs;
}
}
// 解决方案(2)
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;
}
}
- C++
class Solution {
public:
vector exchange(vector& nums)
{
int i = 0, j = nums.size() - 1;
while (i < j)
{
while(i < j && (nums[i] & 1) == 1) i++;
while(i < j && (nums[j] & 1) == 0) j--;
swap(nums[i], nums[j]);
}
return nums;
}
}; 


