上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 22 下一页
摘要: 仅供自己学习 思路: 因为要去重,即[0,-1,1,0]和[1,-1,0,0]不能同时存在,而nums又是随机的排序的数组,所以可能会在遍历的时候加入了重复的结果组合。 为了去重和减少时间消耗,我们可以先对nums进行排序,并用4个指针进行移动控制,首先两个指针,固定a,b在左边,然后c=b+1,d 阅读全文
posted @ 2021-03-12 15:47 Mrsdwang 阅读(44) 评论(0) 推荐(0)
摘要: 仅供自己学习 思路: 之前也做过复制链表的题,当时也是用的hash表将原链表作为key,将复制链表作为value一一映射,当所有的链表都存放在hash表后,就能很快速的找到下一个节点和random指向的节点。 为什么不直接复制后直接赋值,如果这样直接赋值,指向的不是复制的而是原链表的节点。如果遍历的 阅读全文
posted @ 2021-03-12 11:40 Mrsdwang 阅读(64) 评论(0) 推荐(0)
摘要: 仅供自己学习 思路: 看的题解知道了新的思维,就是槽位。对于此题来说相当于preorder中每个元素除了‘,’外,都占用一个槽位,对于’#‘来说,只消耗1个槽位但不产生槽位,而数字元素消耗1个槽位并且产生两个孩子槽位。因为只是检验是否是正确的二叉树前序遍历,所以只要满足遍历preorder的时候 栈 阅读全文
posted @ 2021-03-12 10:55 Mrsdwang 阅读(50) 评论(0) 推荐(0)
摘要: 仅供自己学习 思路: 用一个hash表直接计数每个元素的个数,并且计数后判断是否大于size/2,如果大于,那么久判断是否大于原来的最大个数的元素的个数,如果大的话就更新最大个数的元素并且记录该元素。 代码: 1 class Solution { 2 public: 3 int majorityEl 阅读全文
posted @ 2021-03-11 11:31 Mrsdwang 阅读(44) 评论(0) 推荐(0)
摘要: 仅供自己学习 思路: 因为存在乘除优先级高的运算,所以可以说是存在计算有滞后性,那么可以用栈来存储前面的要进行加减法的数,对于乘除法,我们将他与栈顶元素相乘或相除再放入栈中,这样就能全进行加法。我们用一个变量op来存放运算符,用一个num来存 运算符之前的数字。 整体的顺序是,如果遍历到的元素是数字 阅读全文
posted @ 2021-03-11 11:06 Mrsdwang 阅读(56) 评论(0) 推荐(0)
摘要: 仅供自己学习 思路: 广搜,深搜,回溯都能解决,因为是简单题可以用来再强化三种方法的使用。 广搜: 这里用两个队列一个用来存放节点,另一个用来存放下一层的节点到源节点的距离和。每次对距离和的处理都是用当前距离加上下一个节点的距离,其余处理都是一样的。节点队列非空的时候就循环,取出队列第一个元素,然后 阅读全文
posted @ 2021-03-10 17:29 Mrsdwang 阅读(51) 评论(0) 推荐(0)
摘要: 仅供自己学习 思路: 这种求序列最大和的题,可以考虑动态规划。我们需要两个变量,一个用于保存当前最大和maxsum,和一串连续序列的最大和temp。temp=max(temp+nums[i],nums[i]),这样做的原因是当我们面对nums[i]时,如果temp+nums[i]<nums[i]那么 阅读全文
posted @ 2021-03-10 16:44 Mrsdwang 阅读(33) 评论(0) 推荐(0)
摘要: 仅供自己学习 思路: 因为nums顺序已经被打乱,我们可以用一个hash表来存储所有元素,从而不需要考虑nums的顺序,且每次搜索都是O(1)的时间,nums的元素值为hash表的key值,索引i为value。 代码: 1 class Solution { 2 public: 3 int searc 阅读全文
posted @ 2021-03-10 11:51 Mrsdwang 阅读(37) 评论(0) 推荐(0)
摘要: 仅供自己学习 思路: 如果暴力解,就是从A每个与B C D中的每一个元素相加,那么时间复杂度就是O(n^4) 如果用一个hash表,存储结果,每次值用O(1)的时间获取并相加,则可以优化到O(n^2) 我们用hash表存储A+B的结果,A+B的结果作为key值,然后value值就是计数有多少个这种结 阅读全文
posted @ 2021-03-09 16:58 Mrsdwang 阅读(37) 评论(0) 推荐(0)
摘要: 仅供自己学习 思路: 因为两棵树都是二叉搜索树,所以我们直接中序遍历获得从小到大排序好的一个vector,然后在进行归并排序即可。 将树转为vector用的模板的中序遍历即可。 对于归并排序一个while循环,加入的条件是 i<r1.size()&& (r1[i]<=r2[j] || j==r2.s 阅读全文
posted @ 2021-03-09 12:53 Mrsdwang 阅读(33) 评论(0) 推荐(0)
上一页 1 ··· 12 13 14 15 16 17 18 19 20 ··· 22 下一页