摘要: 自己终于写出来了,孩子再丑也是自己的,把代码贴着,明天学习一下优秀代码 C++动态规划: 阅读全文
posted @ 2019-03-06 01:40 Joel_Wang 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 归并排序代码: 阅读全文
posted @ 2019-03-06 00:53 Joel_Wang 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 用阶乘公式算数字越界了,的确进行了一些不必要的计算,代码贴着留个纪念,局限:能进行小数字的计算 C++: 卧槽我怎么没想到爬楼梯问题就是斐波那契数列,那就用递归,为了降低复杂度也就是使用记忆化搜索,也就是动态规划的方法,写出状态转移方程,降低空间复杂度 python方法:直接从头计算斐波那契数列 p 阅读全文
posted @ 2019-03-06 00:14 Joel_Wang 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 假设数据规模为n,采样为k, 蓄水池采样算法是针对大数据集或者数据规模不确定的算法:空间为k,时间为n, 先选取数据流中的前k个元素,保存在集合A中; 从第j(k + 1 <= j <= n)个元素开始,每次先以概率p = k/j选择是否让第j个元素留下。若j被选中,则从A中随机选择一个元素并用该元 阅读全文
posted @ 2019-03-01 10:17 Joel_Wang 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 递归先序遍历+vector容器记录路径 1 /** 2 * Definition for a binary tree node. 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode(int x) : va... 阅读全文
posted @ 2019-02-28 22:34 Joel_Wang 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 437 path sum C++:使用递归先序遍历,记录根节点到当前节点的路径和,如果当前节点是叶节点,判断是否等于sum 阅读全文
posted @ 2019-02-28 22:20 Joel_Wang 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 相关问题:112 path sum 想使用层序遍历+动态规划的方法O(n)完成,被NULL节点不能加入queue<TreeNode*> q给卡住了,之后再看看怎么改;对这种含有NULL多的怎么层序啊啊啊啊啊啊; 先看看大佬的方法: python:非递归先序遍历+字典 网上看的别人的C++代码: 原理 阅读全文
posted @ 2019-02-28 20:48 Joel_Wang 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 验证回文字符串 C++ 思路就是先重新定义一个string ,先遍历第一遍,字符串统一小写,去除空格;然后遍历第二遍,首尾一一对应比较;时间复杂度O(n+n/2),空间O(n); 阅读全文
posted @ 2019-02-27 22:25 Joel_Wang 阅读(120) 评论(0) 推荐(0) 编辑
摘要: C++解法一:迭代法,使用前驱指针pre,当前指针cur,临时后继指针nxt; C++方法二:递归法,Space:O(n),Time O(n) 阅读全文
posted @ 2019-02-27 21:53 Joel_Wang 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 要求用O(n)时间,和O(1)空间,因此思路是用本身链表进行判断,既然考虑回文,本方法思想是先遍历一次求链表长度,然后翻转前半部分链表;然后同时对前半部分链表和后半部分链表遍历,来判断对应节点的值是否对应相等,时间复杂度应该为O(2n),空间复杂度O(3);基本符合要求,但是运行时间还是有点长; 阅读全文
posted @ 2019-02-27 21:51 Joel_Wang 阅读(115) 评论(0) 推荐(0) 编辑