0
点赞
收藏
分享

微信扫一扫

Leetcode 剑指系列 Day 16 排序

云卷云舒xj 2022-03-12 阅读 84

Leetcode 剑指系列 Day 16 排序

1.剑指 Offer 45. 把数组排成最小的数

class Solution {
public:
    void quickSort(vector<int>& nums, int head, int end){
        if(head >= end) return;
        int i = head, j = end;
        int key = nums[head];
        while(i < j){
            while(i < j && to_string(key) + to_string(nums[j]) <= to_string(nums[j]) + to_string(key)) j--;
            if(i < j){
                nums[i] = nums[j];
                i++;
            }
            while(i < j && to_string(key) + to_string(nums[i]) >= to_string(nums[i]) + to_string(key)) i++;
            if(i < j) {
                nums[j] = nums[i];
                j--;
            }
        }
        nums[i] = key;
        quickSort(nums, head, i - 1);
        quickSort(nums, i + 1, end);
    }
    
    string minNumber(vector<int>& nums) {
        string ans;
        quickSort(nums, 0, nums.size() - 1);
        for(int i = 0; i < nums.size(); i++){
            ans += to_string(nums[i]);
        }
        return ans;
    }
};

2.剑指 Offer 61. 扑克牌中的顺子

class Solution {
public:
    void quickSort(vector<int>& nums, int l, int r){
        if(l >= r) return;
        int i = l, j = r;
        while(i < j) {
            while(nums[l] <= nums[j] && i < j) j--;
            while(nums[l] >= nums[i] && i < j) i++;
            swap(nums[i], nums[j]);
        }
        swap(nums[i], nums[l]);
        quickSort(nums, l, i - 1);
        quickSort(nums, i + 1, r);
    }
    
    bool isStraight(vector<int>& nums) {
        int numOfKing = 0;
        quickSort(nums, 0, nums.size() - 1);
        for(int i = 0; i < 5;i++){
            if(nums[i] == 0) numOfKing++;
            else break;
        }
        for(int i = numOfKing; i < 5; i++){
            if(i == 4) break;
            int temp = nums[i + 1] - nums[i] - 1;
            if(temp == -1) return false;
            if(temp <= numOfKing){
                numOfKing -= temp;
                continue;
            }
            else return false;
        }
        return true;
    }
};
举报

相关推荐

0 条评论