2021/8/23

两题困难

[//]: # (支持粘贴图片啦🎉🎉🎉)
[//]: # (保存的笔记可以在小程序中查看)

```
class Solution {
public:
    int dp[10];
    int vis[10];
    string ans = "";
    void dfs(int n,int k,int id){
        int sum = 0;
        for(int i = 1; i <= n; ++ i){
            if(vis[i] == 0){
                if(id == n){
                    ans += i + '0';
                    return ;
                }
                sum += dp[n - id];
            }
            if(sum >= k){
                ans += i + '0';
                sum -= dp[n - id];
                vis[i] = 1;
                dfs(n,k - sum,id + 1);
                return ;
            }
        }
    }
    string getPermutation(int n, int k) {
        dp[1] = 1;
        for(int i = 2; i <= 9; ++ i){
            dp[i] = dp[i - 1] * i;
        }
        dfs(n,k,1);
        return ans;
    }
};
```
[//]: # (支持粘贴图片啦🎉🎉🎉)
[//]: # (保存的笔记可以在小程序中查看)

```
二分
class Solution {
public:
    int splitArray(vector<int>& nums, int m) {
        int l = 0,r = 1e9 + 7;
        int ans = 1e9+7;
        while(l <= r){
            int cnt = 0;
            int mid = (l + r) >> 1;
            int t = 0;
            for(int i = 0,sum = 0; i <= nums.size() && cnt <= m; ++ i){
                if(i == nums.size()){
                    ++ cnt;
                    t = max(sum,t);
                    continue;
                }
                if(sum + nums[i] <= mid){
                    sum += nums[i]; 
                } else {
                    ++ cnt;
                    t = max(sum,t);
                    sum = 0;
                    -- i;
                }
            }
            if(cnt <= m){
                ans = min(ans,t);
                r = mid - 1;
            } else l = mid + 1;
        }
        return ans;
    }
};
```

  mysql 3讲

两场笔试

学习了第七章

 

posted @ 2021-08-23 21:54  风生  阅读(17)  评论(0编辑  收藏  举报