LEEDCODE 159库存管理3

LEEDCODE 159库存管理3_第1张图片

class Solution {
public:
    vector<int> inventoryManagement(vector<int>& stock, int cnt) {
        // quicksort
        int left = 0;
        int right = stock.size() - 1;
        quicksort(left, right, stock, cnt);

        vector<int> a;
        for(int i = 0; i<cnt; i++)
        {
            a.push_back(stock[i]);
        }
        return a;
    }
    void quicksort(int left, int right, vector<int>& stock, int cnt) {
        if( left >= right)
            return;
        int start = left;
        int end = right;
        int p = stock[left];
        while(left < right)
        {
            while(stock[right] >= p && left < right)
            {
                right -= 1;
            }
            if(stock[right] < p)
            {
                stock[left++] = stock[right];
            }
            while(stock[left] <= p && left < right)
            {
                left += 1;
            }
            if(stock[left] > p)
            {
                stock[right--] = stock[left];
            }
        }
        stock[left] = p;
        quicksort(start, left-1,stock,cnt);
        if(left<cnt-1)
        {
            quicksort(left+1,end,stock,cnt);
        }
    }
};




LEEDCODE 159库存管理3_第2张图片

LEEDCODE 159库存管理3_第3张图片

你可能感兴趣的:(c++,算法)