Contents

ARST打卡第183周[183/521]

Algorithm

lc324_摆动序列2

做了比较久,但是没有考虑到可能先降序再升序的情况,导致卡住了…然后一直卡在了37%的AC率…

见过最变态的中等题…

看题解又看了60多分钟,真的很绕…而且题解的代码太不通俗易懂了,详见我的注释

进阶思路需要花更多的时间,但是投入产出比对于自己目前较低,pass,有兴趣的看: https://leetcode.cn/problems/wiggle-sort-ii/solutions/1627858/bai-dong-pai-xu-ii-by-leetcode-solution-no0s/

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
class Solution {
public:
    void wiggleSort(vector<int>& nums) {
        int n = nums.size();
        vector<int> arr = nums;
        sort(arr.begin(), arr.end());
        int x = (n + 1) / 2;
        // https://leetcode.cn/problems/wiggle-sort-ii/solutions/1627858/bai-dong-pai-xu-ii-by-leetcode-solution-no0s/
        // 对于 j = x - 1 理解:
        // n为偶数,x=(n+1)/2=n/2, 所以j = n-1-x(题解推导) = n/2-1 = x-1
        // n为奇数,x=(n+1)/2=n/2+1[这里是计算机的n/2]
        // ,所以j=n-x(题解推导)=n - (n+1)/2=n/2 (计算机得到奇数除以2就是要少掉那个1)=x-1,这里很难理解,理解了一个小时,绝了,很绕,绕很久才能统一起来
        for (int i = 0, j = x - 1, k = n - 1; i < n; i += 2, j--, k--) {
            nums[i] = arr[j];
            if (i + 1 < n) {
                nums[i + 1] = arr[k];
            }
        }
    }
};

lc110_平衡二叉树

当时笔试只剩9分钟了,有点慌了,于是简单题没有写完,汗颜…

递归记忆,这里就是后序遍历,先左右节点,然后根节点

链接:https://leetcode.cn/problems/balanced-binary-tree/solutions/377216/ping-heng-er-cha-shu-by-leetcode-solution/

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
class Solution {
public:
    int height(TreeNode* root) {
        if (root == NULL) {
            return 0;
        }
        int leftHeight = height(root->left);
        int rightHeight = height(root->right);
        if (leftHeight == -1 || rightHeight == -1 || abs(leftHeight - rightHeight) > 1) {
            return -1;
        } else {
            return max(leftHeight, rightHeight) + 1;
        }
    }

    bool isBalanced(TreeNode* root) {
        return height(root) >= 0;
    }
};

Review

【TED演讲】我们来讨论死亡

提前和家人们讨论自己对于死的计划,控制自己的死,是比较好的方式,而不是当不能说话的时候,无法按照自己的意愿结束

你就是你,你是重要的,直到你生命的最后一刻

Tips

Go mod:一文教你真正用起来Go Module依赖管理

Share

mit6.824学习资料分享:

视频:

课表+实验链接: http://nil.csail.mit.edu/6.824/2020/schedule.html