【水】【更新:太笨了,怎么办?】做题家每天做题碎碎念

???

我就忘记切号骂了一下LC啊陆老师 :cry:
而且@ ctzsm @ YoumuChan @ Sleepless 这三位才是真神

这就是为什么要每个平台用不一样的ID,打一枪换一个地方(逃

1 个赞

倒不完全是id一样
我每个网站都留指向下一个站点的指针了
而且留得比较明显 :yaoming:

偷偷假艾特也太坏了

第二次忘记切号 有理由怀疑是故意忘记切号 :doge:

1 个赞

我会故意留下链接到别的网站的假信息增大盒武器使用难度

惊扰了巨佬是要杀头的

这不是要给陆老师刷个八月全勤吗,全勤出了bug肯定是要狠狠斥责lc

1 个赞

T3强行状压DP+剪枝,一个样例让我难逃TLE命运

我日,为什么C++状压DP就能过,气抖冷
哦,原来应该状压行

T4可以暴力过,我其实规律都找出来了
难受,黑马楼启动

\color{purple}\Biggl(\color{blue}\biggl(\color{green}\Bigl(\color{yellow}\bigl(\color{orange}\,(\color{black}{\Huge{\color{red}征友,\color{blue}希望可以婚绿\color{orange}130}} \,\color{orange})\,\color{yellow}\bigr)\color{green}\Bigr)\color{blue}\biggr)\color{purple}\Biggr)

\Large\color{purple}富\color{olIve}婆\color{blue}大姐姐\color{red}请\color{violet}大力\color{green}送\color{lime}我\color{black}黑神话\color{orange}DLC

1 个赞

https://leetcode.com/problems/add-two-polynomials-represented-as-linked-lists/

挺有意思的题

https://leetcode.com/problems/find-missing-observations/

弱智模拟

https://leetcode.com/problems/delete-nodes-from-linked-list-present-in-array

没啥意思,明天暂停一个周末,去尝试找一把五六半

python 那个 x in list 的实现会tle 呃 好蠢

dfs和验证写一起,TLE了
https://leetcode.com/problems/linked-list-in-binary-tree/

不知道为什么一定要分开写

什么是分开,我暴力过了,数据量那么少,虽然性能很差 :troll:

    bool isSubPathCannotSkip(ListNode* head, TreeNode* root) {
        if (!head) return true;
        if (!root) return false;
        if (root->val == head->val)
        {
            if (isSubPathCannotSkip(head->next, root->left)) return true;
            if (isSubPathCannotSkip(head->next, root->right)) return true;
        }
        return false;
    }

    bool isSubPath(ListNode* head, TreeNode* root) {
        if (!head) return true;
        if (!root) return false;
        if (isSubPathCannotSkip(head, root)) return true;
        if (isSubPath(head, root->left)) return true;
        if (isSubPath(head, root->right)) return true;
        return false;
    }

看了第一名的代码,区别是先test后call还是先call后test,快了但是不DRY :troll:

如果同时dfs和验证就会TLE

tree is about DP :smile:

我最喜欢jeff在讲dp的时候说的这句话。把在复杂的数据结构上执行的算法抽象成dp状态图的话,会舒服一些。

DP is about 有向无环图中的爆搜 :yizhiyan:
当年一个CTSC选手给我们讲的,后来我就就豁然开朗,龙场悟道

yes, that’s what Jeff said

and you can abstract it to “whatever-first-search”

你们俩这尬聊一看就不是一波人 :troll:

1 个赞

https://leetcode.com/problems/insert-greatest-common-divisors-in-linked-list

昨天的题,这真没啥可说的吧,随便写写就秒了

上代码看看?(以及其实可以KMP,也是一种dfs和验证写一起)

我觉得可能是会重复遍历一些节点,但是我注意力涣散看不出来:

    bool recurse(ListNode* head, ListNode* lst, TreeNode* tre) {
        if (lst == nullptr) return true;
        if (lst != nullptr && tre == nullptr) return false;
        if (lst->val == tre->val) {
            bool l = recurse(head, lst->next, tre->left);
            if (l) return true;
            bool r = recurse(head, lst->next, tre->right);
            if (r) return true;
        } 
        bool l = recurse(head, head, tre->left);
        if (l) return true;
        bool r = recurse(head, head, tre->right);
        if (r) return true;
        return false;
    }

假如root匹配list第一个元素但是root.left不匹配下一个
你的代码会dispatch这几个搜索
(head, head, root) → (head, head.next, root.left) → (head, head, root.left.left)
(head, head, root) → (head, head, root.left) → (head, head, root.left.left)
注意到(head, head, root.left.left)在两种不同情况下都被查询了,估计是个指数复杂度。

1 个赞

压行怪来了 :troll:

bool isSubPath(ListNode* head, TreeNode* root,bool start=1) {
    if(!head)return 1;
    if(!root)return 0;
    if(root->val==head->val&& (isSubPath(head->next,root->left,0)||isSubPath(head->next,root->right,0)))return 1;
    return start?isSubPath(head,root->left)||isSubPath(head,root->right):0;
}