挖坑法:
class Solution {
public:
vector<int> Search(vector<int>& nums) {
int left = 0;
int right = nums.size() - 1;
QuickSort(nums,left,right);
vector<int> res(nums.begin(), nums.end());
return res;
}
void QuickSort(vector<int>& nums,int left,int right) {
if (left >= right) {
return;
}
int start = left;
int end = right;
int slot = left;
int key = nums[left];
while (left < right) {
while (left < right && nums[right] >= key) {
right--;
}
nums[slot] = nums[right];
slot = right;
while (left < right && nums[left] <= key) {
left++;
}
nums[slot] = nums[left];
slot = left;
}
nums[slot] = key;
QuickSort(nums,start,slot-1);
QuickSort(nums,slot+1,end);
}
};
int main() {
vector<int> nums = { 3,2,1 };
Solution ss;
vector<int> res = ss.Search(nums);
for (auto& ch : res) {
cout << ch << " ";
}
return 0;
}