373. 奇偶分割数组
分割一个整数数组,使得奇数在前偶数在后。
样例
给定 [1, 2, 3, 4],返回 [1, 3, 2, 4]。
挑战
在原数组中完成,不使用额外空间。
class Solution {
public:
/*
* @param nums: an array of integers
* @return: nothing
*/
void partitionArray(vector<int> &nums) {
// write your code here
if(nums.size()<2) return;
int less=-1;
int more=nums.size();
int L=0;
while(L<more)
{
if(nums[L]%2!=0)
{
swap(nums[L++],nums[++less]);
}else
{
swap(nums[L],nums[--more]);
}
}
}
};
###############################################
class Solution:
"""
@param: nums: an array of integers
@return: nothing
"""
def partitionArray(self, nums):
# write your code here
if len(nums)<2:
return nums
less=-1
more=len(nums)
L=0
while L<more:
if nums[L]%2!=0:
t=nums[L]
less+=1
nums[L]=nums[less]
L+=1
nums[less]=t
else:
t=nums[L]
more-=1
nums[L]=nums[more]
nums[more]=t
return nums
本文介绍了一种在原数组中实现奇数与偶数分割的算法,通过一次遍历即可将奇数放置在数组前部,偶数放置在后部,无需额外空间。算法采用双指针技术,分别从数组两端向中间移动,提高了效率。
6635

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



