摘要: 树的问题,递归来做。这道题考虑起来有些绕,记录一下。 对于任意一个节点,通过这个节点的最长路径是 以左节点为端点的最长路径+以右节点为端点的最长路径 因此 写一个函数 int dfs(TreeNode *root) 来计算以root为端点的最长路径,通过这个节点的最长路径在函数里计算并更新max即可 阅读全文
posted @ 2018-07-11 21:08 約束の空 阅读(118) 评论(0) 推荐(0)
摘要: 方法一: BFS。用普通BFS来做的话,需要记录结点的depth,每次depth大于max_depth的时候更新答案。或者也可以根据队列的size循环,每次循环第一个就是该层最左边的结点。 有一种巧妙的方法就是按照先右子树后左子树的方式层次遍历,这样最后一个出队列的一定是最左边的结点。 方法二: D 阅读全文
posted @ 2018-06-11 20:49 約束の空 阅读(91) 评论(0) 推荐(0)
摘要: 下标间距<=k,立马就想到滑动窗口,维护一个大小为k的区间。 方法一: 对于新的数,维护区间大小的同时,需要判断该区间中是否存在 [num-t, num+t] 的数字。由于需要根据大小查找,可以利用大小为 k 的 set 作为维护的区间,set 是有序的,因此可以调用 lower_bound 找到第 阅读全文
posted @ 2018-06-09 14:39 約束の空 阅读(111) 评论(0) 推荐(0)
摘要: 最先想到的是暴力,需要枚举矩形左上角和右下角两个点,需要四重循环。 进一步思考优化的方法。枚举矩阵的两行row1,row2,然后枚举列col,如果两个交点都为1,说明这一组点是可以作为矩形的端点的。在row1与row2上,如果有n组这样的点,说明可以构成n*(n-1)/2个矩形(就变成数轴上n个点能 阅读全文
posted @ 2018-06-09 12:23 約束の空 阅读(69) 评论(0) 推荐(0)
摘要: 求总数而不用给出方案,很可能是动态规划问题。有两种思路都可以做,本质是一样的:都是对当前颜色与前一个颜色是否相同进行分类。 思路一: dp[i] 表示到下标i为止的方案数。dp[n-1] 为所求。 dp[i] 由两种情况构成: 如果 i-1 颜色与 i 颜色相同,则 dp[i] = dp[i-2] 阅读全文
posted @ 2018-06-08 21:17 約束の空 阅读(104) 评论(0) 推荐(0)
摘要: 字符串处理的问题,有几个点要注意。 string 里的 find(), find_first_of(), find_first_not_of() 如果没找到,返回string::nops。 C++ reference 中 npos 是这样描述的: This constant is defined w 阅读全文
posted @ 2018-06-08 14:44 約束の空 阅读(101) 评论(0) 推荐(0)
摘要: 脑筋急转弯题。 先从石头数量较少考虑,假设当前是我的回合,如果还剩石头数量为1,2,3,我能够获胜。如果石头数量为4,我必定会输。 现在考虑石头更多的情况:还是我的回合,如果石头数量是5,6,7,我可以将4堆石头留给对手,我必胜。如果石头数量是8,对手一定会将4留给我,我必败。 石头数量更多的情况也 阅读全文
posted @ 2018-06-07 21:57 約束の空 阅读(81) 评论(0) 推荐(0)
摘要: 不能用加减法,想到用位运算解题。 本题思路可见 http://www.cnblogs.com/grandyang/p/5451942.html 关于位运算部分总结 可见 https://blog.csdn.net/fly_yr/article/details/51144272 阅读全文
posted @ 2018-06-06 22:01 約束の空 阅读(87) 评论(0) 推荐(0)
摘要: 求海明距离,将两个数按位异或,然后计算结果中bit 1的位数即可。其实就是 191. Number of 1 Bits 的问题。 计算二进制数中bit 1的位数,有一种经典的算法,Brian Kernighan's algorithm。 n ^ (n-1) 可以将较低位的1置为0。不同于上面的方法需 阅读全文
posted @ 2018-06-06 19:55 約束の空 阅读(104) 评论(0) 推荐(0)
摘要: 方法一: 树的问题,第一想法就是递归。用start和end来确定数组区间,[start,end)。 这里又用到了 STL 的 max_element。主要运用如下: max_pos = max_element(v.begin(),v.end()) - v.begin(); max_num = *ma 阅读全文
posted @ 2018-06-06 15:56 約束の空 阅读(102) 评论(0) 推荐(0)