Loading

摘要: 函数功能: 1、如果p q都存在,返回他们的公共祖先 2、只存在一个,那就返回存在的一个 3、都不存在,返回NULL 递归左右子树,左子树的结果为left1,右子树结果为right1 left1空代表结果(公共祖先)在right1,反之亦然。 如果都非空,说明p q在左右两边,此时要返回根结点。 否 阅读全文
posted @ 2020-03-03 09:40 是凉城吖 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 看题就发蒙了,在题目给定的复杂度情况下,使用归并排序进行处理。 题中的链表处理,要学会断开链表,即一个链表断成两块,如何设置断点,分成两个链表的处理方法 1 /** 2 * Definition for singly-linked list. 3 * struct ListNode { 4 * in 阅读全文
posted @ 2020-03-02 09:16 是凉城吖 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 思路一:数组按序排列,中间的数肯定是出现次数大于n/2的数 仔细推理一下就可以得出规律 思路二:哈希表 (map) 哈希表相关知识点解释:哈希表简单来说就是建立key到value的映射。 就题而言就是数组的数值(key )与数值在数组中出现的次数(value)的映射 C++中用map<int,int 阅读全文
posted @ 2020-03-02 07:48 是凉城吖 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 1 class Solution { 2 public: 3 TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) { 4 int parentval=root->val; 5 int pval=p->val 阅读全文
posted @ 2020-03-01 22:40 是凉城吖 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 一道递归的题,不过其实更像是一道背模板的题。 1 class Solution { 2 public: 3 vector<int> grayCode(int n) { 4 vector<int>res; 5 res.push_back(0); 6 for(int i=0;i<n;i++) 7 { 8 阅读全文
posted @ 2020-03-01 22:23 是凉城吖 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 来自labuladong的思想(leetcode) 解决一个回溯问题,实际上就是一个决策树的遍历过程。你只需要思考 3 个问题: 1、路径:也就是已经做出的选择。 2、选择列表:也就是你当前可以做的选择。 3、结束条件:也就是到达决策树底层,无法再做选择的条件。 如果你不理解这三个词语的解释,没关系 阅读全文
posted @ 2020-02-29 20:07 是凉城吖 阅读(143) 评论(0) 推荐(0) 编辑
摘要: N位不重复数的子集是2^N个,这里对子集总数表示采用位运算的方法 。例如1<<3=1*2*2*2=8,故可表示为1<<N 需要注意的点:vector<int> res; 直接这么声明的话没有初始值,内部是空的,就是[]这样的形式,所以后续循环输出的时候才能输出空集 思路:建立1到2^N的循环,循环内 阅读全文
posted @ 2020-02-29 12:41 是凉城吖 阅读(162) 评论(1) 推荐(0) 编辑
摘要: 今天学到了一种非常好的方法,虽然自己有想到按照右下左上四个方向去螺旋进行赋值,但是对于leetcode上大佬所讲解的用四周边界作为条件可以有效解决循环时候的边界问题,同时,用while循环判断的好处在于最后一个元素落到的位置和row=column的时候元素位置有很好的作用,减少bug的出现。(不得不 阅读全文
posted @ 2020-02-28 22:54 是凉城吖 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 1、map的用法 使用count,返回的是被查找元素的个数。如果有,返回1;否则,返回0。注意,map中不存在相同元素,所以返回值只能是1或0。 使用find,返回的是被查找元素的位置,没有则返回map.end()。 用find函数来定位数据出现位置,它返回的一个迭代器,当数据出现时,它返回数据所在 阅读全文
posted @ 2020-02-28 10:21 是凉城吖 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 开始学习的时候对这一类问题十分混乱,尤其是指针的调用,这里面引用一位leetcode大佬huwt的解析,觉得很好拿来分享一下。 也体会到了大佬的话:这种题就要多画图,寻找每一次过程的关系,多总结,就做好了,作为第二天leetcode的重头戏。 好理解的双指针定义两个指针: pre 和 cur ;pr 阅读全文
posted @ 2020-02-27 23:09 是凉城吖 阅读(410) 评论(0) 推荐(0) 编辑