leetcode-第九周

来源:互联网 发布:如何升级mac osx10.10 编辑:程序博客网 时间:2024/06/07 07:55

186. Reverse Words in a String II

class Solution {public:    void reverseWords(string &s) {        reverse(s.begin(), s.end());        for (int i = 0, j = 0; j <= s.size(); j++) {            if (j == s.size() || s[j] == ' ') {                reverse(s.begin() + i, s.begin() + j);                i = j + 1;            }        }    }};

333. Largest BST Subtree

/* * 判断root->val和[left_mn, left_mx]以及[right_mn, right_mx]之间的关系 */class Solution {private:    tuple<int, int, int> dfs(TreeNode *root, int &ret) {        if (!root)            return make_tuple(0, INT_MAX, INT_MIN); // make it possible        int left_size, left_mn, left_mx;        tie(left_size, left_mn, left_mx) = dfs(root->left, ret);        int right_size, right_mn, right_mx;        tie(right_size, right_mn, right_mx) = dfs(root->right, ret);        if (left_mx < root->val && root->val < right_mn) { // BST里面的元素不能相等,有坑!            int size = 1 + left_size + right_size;            int mn = min(root->val, left_mn), mx = max(root->val, right_mx);            ret = max(size, ret);            return make_tuple(size, mn, mx);        }        return make_tuple(0, INT_MIN, INT_MAX); // make it impossible    }public:    int largestBSTSubtree(TreeNode* root) {        int ret = 0;        dfs(root, ret);        return ret;    }};
0 0
原创粉丝点击