给出一个整数数组 nums 和一个整数 k。划分数组(即移动数组 nums 中的元素),使得:
所有小于k的元素移到左边
所有大于等于k的元素移到右边
返回数组划分的位置,即数组中第一个位置 i,满足 nums[i] 大于等于 k。
class Solution {
public:/*** @param nums: The integer array you should partition* @param k: An integer* @return: The index after partition*/int partitionArray(vector<int> &nums, int k) {
// write your code hereint left = 0;int right = nums.size()-1;if (left >= right)return 0;while (left < right){
while(nums[right] >= k && left < right){
right--;}while(nums[left] < k && left < right){
left++;}if (left < right){
int temp = nums[left];nums[left] = nums[right];nums[right] = temp;}}if (nums[right] < k){
right++;}return right;}
};