代码改变世界

stl string的erase方法

2018-09-09 01:32 by legend聪, 391 阅读, 0 推荐, 收藏, 编辑
摘要:删除string中的所有0. 阅读全文

[pat]1068 Find More Coins

2018-09-05 21:18 by legend聪, 189 阅读, 0 推荐, 收藏, 编辑
摘要:满背包问题,把体积和价值看成相等的。用滚动数组优化,然后额外开辟一个choice数组来记录每次的选择,然后回溯打印。因为要按字典序,先把价值进行排序。假如选最小的商品能装满m的话,那就把判断条件改成大于等于,然后最后来 选择最小的那个。 阅读全文

VS2017gets的使用

2018-09-02 22:03 by legend聪, 6007 阅读, 0 推荐, 收藏, 编辑
摘要:由于动态规划的LCS问题,需要从第一个字符开始读取比较方便。所以用gets_s();第一个参数是起始位置,第二个参数是字读取字符的长度。 阅读全文

vector erase的错误用法

2018-09-02 16:11 by legend聪, 523 阅读, 0 推荐, 收藏, 编辑
摘要:直接写 a.erase(it)是错误的,一定要写成it=a.erase(it)这个错误编译器不会报错.而且循环遍历删除的时候,删除了一个元素,容器里会自动向前移动,删除一个元素要紧接着it--来保持位置不变 阅读全文

[pat]A1072 Gas Station

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

1021 Deepest Root

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

fill和memset的区别

2018-08-18 11:24 by legend聪, 173 阅读, 0 推荐, 收藏, 编辑
摘要: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聪, 175 阅读, 0 推荐, 收藏, 编辑
摘要:二分查找不只是查找,还可以根据需求添加条件进行查找,比如这个题,左端点的条件就是边界点或者小于target,右端点的条件就是!=size()或者大于。根据这个找到查找的条件 阅读全文

leetcode473 Matchsticks to Square

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

leetcode 22括号生成

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