摘要: 思路: 这题的意思比较模糊,为什么不能直接复制呢? 浅复制,关系和地址都一样;深复制,关系一样,但地址不一样。 同时因为有一个random指针,它的指向是随机的,因此如果遍历复制就会导致一个问题,如果前面的节点的random指向后面的节点,但后面的节点还没有被创建,此时random就会指向null, 阅读全文
posted @ 2021-07-22 13:12 Mrsdwang 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 忙着期末,现在又在实习,太久没刷 leetcode了,今后还会坚持刷下去的。 思路: 这道题不太懂考什么,大概就是先排序,判断第一个是否为1,不为1就减小为1,然后循环到最后一个元素,判断是否相邻元素差值的绝对值是否小于等于1. 代码: class Solution { public: int ma 阅读全文
posted @ 2021-07-15 14:09 Mrsdwang 阅读(36) 评论(0) 推荐(0) 编辑
摘要: 思路: 第一次做01背包的题,但这类问题的状态转移方程的核心比较类似,都是 dp[i][j] = max(dp[i-1][j],dp[i-1][j-v[i]]+w[i]),这个状态转移方程可以去看专门的01背包解析获得更好的理解。那么对于01背包问题,更多的是如何转化成01背包的问题来求解,然后就直 阅读全文
posted @ 2021-06-13 21:08 Mrsdwang 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 思路: 相当于转化成查找第一个true,直接二分搜索即可。 简单题我重拳出击 代码: // The API isBadVersion is defined for you. // bool isBadVersion(int version); class Solution { public: int 阅读全文
posted @ 2021-06-13 19:51 Mrsdwang 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 思路: 基础的链表题,建立一个dummy节点,一个cur指向当前节点用来判断是否等于val的指针,和一个pre指针用来更新删除等于val节点后的链表。 一个while循环,条件是cur不为nullptr即可。 代码: /** * Definition for singly-linked list. 阅读全文
posted @ 2021-06-07 18:45 Mrsdwang 阅读(28) 评论(0) 推荐(0) 编辑
摘要: 思路: 今天脑子咋回事。。。这是链表,并不需要在现有链表里合并来保持O(1)的空间复杂度。创建一个新节点来连接也是满足的。 那就创建一个新节点,双指针判断两个链表当前指针指向数字的大小,谁小新节点指谁。 当循环结束时候在判断哪个链表还没有合并完,就用链表再接上为合并完的即可。 /** * Defin 阅读全文
posted @ 2021-06-04 21:50 Mrsdwang 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 思路: 这里有一个点必须要清楚,Listnode这个结构体。那么当两个节点相交时,每个链表里的这个节点以及后面的节点是完全一样的,这个“完全一样”包括val,和next所指的节点。在这之前有val相同的节点,但next不相同,所以并不能作为相交的节点。那么根据这个性质,我们只需要存入一个链表到一个查 阅读全文
posted @ 2021-06-04 20:31 Mrsdwang 阅读(59) 评论(0) 推荐(0) 编辑
摘要: 思路: 这个题就直接的方法很容易想到,两次遍历,第一次得到正向到n的长度,第二次就找到这个节点即可。 一次遍历的方法能自己想到了,就快慢指针。但是自己想的方法太多边界处理不好了,最后还是使用了题解的方法。 我自己想到的是 每次都用cnt用来计数,当cnt==n的时候就移动慢指针,当快指针为空的时候就 阅读全文
posted @ 2021-06-04 00:17 Mrsdwang 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 思路: 这道题,我一开始想用栈存0,然后遇到1就取出来一个0,同时计数,但是这样就有个问题,有可能中间有多个0,后面有多个1只能匹配中间的一部分0,导致得到的子数组不是连续的。 然后就没办法了... 去看题解,当我把0改为-1,那就可以通过前缀和来实现了。这里多提一下前缀和的简单定义吧,前缀和本质是 阅读全文
posted @ 2021-06-03 20:39 Mrsdwang 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 思路: 想到了前缀和的方法,但还是没法避免用了两重循环,然后还是超时了。 看了题解也是前缀和,但是他的前缀和求的和我想的有不同,并且还用了hash表来优化。 这里主要问题是我没能想到同余定理,什么是同余定理呢。 举个例子: 23,2,4,6,7.k=6我们知道2,4能够满足条件。那么2,4的求解为前 阅读全文
posted @ 2021-06-02 18:08 Mrsdwang 阅读(26) 评论(0) 推荐(0) 编辑