代码改变世界

随笔档案-2018年08月

[pat]A1072 Gas Station

2018-08-30 16:48 by legend聪, 325 阅读, 收藏,
摘要: 这道题的结点编号是字符串类型,处理的过程很有意思,用getID将house和GasStation进行区分 阅读全文

1021 Deepest Root

2018-08-21 17:02 by legend聪, 212 阅读, 收藏,
摘要: 这道题的关键在于如何求两个最远的结点,二叉树比较容易一直DFS就能找到,但是普通树就比较麻烦。要先找到一端,再去找另外一端,两端的并集就是答案。因为结点都是对称的,所以两端都是答案。还要注意去重,12 13这种就会重复。 阅读全文

fill和memset的区别

2018-08-18 11:24 by legend聪, 184 阅读, 收藏,
摘要: https://blog.csdn.net/xs18952904/article/details/75195412 memset只能初始化成为0或者-1,其他都要用fill来完成. 阅读全文

leetcode34. Find First and Last Position of Element in Sorted Array

2018-08-14 16:32 by legend聪, 207 阅读, 收藏,
摘要: 二分查找不只是查找,还可以根据需求添加条件进行查找,比如这个题,左端点的条件就是边界点或者小于target,右端点的条件就是!=size()或者大于。根据这个找到查找的条件 阅读全文

leetcode473 Matchsticks to Square

2018-08-10 16:44 by legend聪, 314 阅读, 收藏,
摘要: 一开始想求所有结果为target的组合来着,但是所选元素不能重叠。用这个递归思想很简单,分成四个桶,每次把元素放在任意一个桶里面,最后如果四个桶相等就可以放进去,有一个地方可以剪枝,假如任意一个桶的元素和大于了target果断return。另一个优化的点在于,如果要求能不能也就是找到一个就可以的话, 阅读全文

leetcode 22括号生成

2018-08-09 21:23 by legend聪, 290 阅读, 收藏,
摘要: 非常好的一道题。一开始的思想是这样的,先把n对括号按照某一顺序生成一个string,然后用全排列算法生成所有可能,然后利用stack写一段判断括号是否匹配的字符串,匹配的假如结果中。不过会超时。因为全排列的复杂度略高,阶乘级别。而对于阶乘函数和指数函数的复杂度,显然是阶乘函数高,指数每次乘一个相同的 阅读全文

leetcode 93 复原IP地址

2018-08-07 20:15 by legend聪, 326 阅读, 收藏,
摘要: IP地址,分成四段,每段是0-255,按照每段的长度分别为1,2,3下一段长度分别1,2,3再下一段。。。。。。进行递归遍历,能满足条件的假如res中。比较难想到的就是假如有一段是三位的010是不符合要求的。这点一开始没想到,改成首尾不是0的才执行结果又漏掉了单个0的IP地址,比如0.0.0.0.。 阅读全文

leetcode 108

2018-08-06 22:30 by legend聪, 227 阅读, 收藏,
摘要: 二分法建立二叉树,每次把左半部分作为左子树右半部分作为右子树,递归建立BST。 阅读全文

关于二叉树结点删除引出的小问题

2018-08-06 16:23 by legend聪, 213 阅读, 收藏,
摘要: 为了使问题简化,假如删除的是二叉树的叶子结点, delete函数是这样的。现在假设你删除root的左结点,root已经分配空间。delete1(root->left)是可以删除的。但如果这样,node* temp=root->left; delete1(temp);是删除不了的,但可以改变结点的信息 阅读全文