- 博客(20)
- 资源 (2)
- 收藏
- 关注
原创 114. Flatten Binary Tree to Linked List 将二叉树转换成链表
解题思路:1)找到根节点的左子树的最右节点,然后将根节点的右子树接到前节点的右子树上,不断执行这个过程。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNo...
2018-11-30 17:20:02 146
原创 669. Trim a Binary Search Tree 修剪二叉搜索树
解题思路:总共分三种情况:1) 如果根节点的值在[L,R]范围内,返回根节点,但是继续修剪根节点的左子树和右子树;2)如果根节点的值小于L,由于二叉搜索树的性质,根节点的值和根节点的左子树的值肯定不在[L,R]范围内,这时候返回trim后的右子树;3)如果根节点的值大于L,由于二叉搜索树的性质,根节点的值和根节点的右子树的值肯定不在[L,R]范围内,这时候返回trim后的左子树...
2018-11-30 15:03:45 178
原创 236. Lowest Common Ancestor of a Binary Tree 两个节点的最近公共祖先
解决思路:利用递归:递归函数lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q)的作用是找到以root为根节点的二叉树,p和q的最近公共祖先;其他的解决方法可以利用map保存节点和父节点的映射,不过需要额外的空间。/** * Definition for a binary tree node. * str...
2018-11-28 20:44:54 170
原创 Leetcode 199. Binary Tree Right Side View 从右侧观察二叉树的节点
解题思路 :优先遍历右子树节点,图中红色的节点是最右侧的节点,当后边遍历到绿色节点时,因为其深度和已遍历的右侧节点个数相同,所以这里不用加入结果中,只有其深度大于或者等于已遍历的节点的个数时,才能加入到结果中。/** * Definition for a binary tree node. * struct TreeNode { * int val; * ...
2018-11-27 22:05:37 192
原创 Leetcode 92. Reverse Linked List II 翻转部分链表
解决思路:注意的要点是:m 可能位于头结点,所以这里临时建立一个节点,每次将cur后面的节点放到pre节点后边,这里的cur->next其实是在一直变化的,所以这里cur并不用自己更新,每次进行重链接时相当于对链表进行了遍历。/** * Definition for singly-linked list. * struct ListNode { * int...
2018-11-16 21:52:36 152
原创 Leetcode 84. Largest Rectangle in Histogram 柱状图的最大矩形面积
解决思路: 问题主要考察每一根柱子最大能扩多大,这个行为的实质就是找到柱子左边刚比它小的柱子的位置在哪里,以及右边刚比它小的柱子位置在哪里,为了模拟这个过程,我们可以用栈模拟这个过程。 栈里边存储的是一个递增柱子的位置,每次遇到一个比栈顶位置小的柱子,则计算栈顶位置柱子所能拓展的面积,知道最后一个柱子。class Solution {public: ...
2018-11-15 18:45:40 125
原创 SBT编译慢,更换国内阿里镜像
在用户目录下边添加一个文件:sudo gedit ~/.sbt/repositories文件内添加为下面:[repositories]localmy-maven-repo: https://maven.aliyun.com/repository/public
2018-11-13 17:12:04 6441 2
原创 Leetcode 98. Validate Binary Search Tree 判断是不是搜索二叉树
解决思路:递归在bool isValidBST(TreeNode* root, TreeNode* min, TreeNode* max)函数中,min和max节点限定了root的取值范围,如果root节点的值不满足 (min,max),则返回false,在递归的过程中,不断更新 (min,max),来判断根节点和子节点是否满足关系。class Solution {public...
2018-10-31 19:58:43 105
转载 Windows下Spark-mlib保存模型到本地报错
Windows下Spark-mlib保存模型到本地报空指针解决方案出这种错误真是一脸懵逼,代码肯定是没问题的。二、解决办法下载编译好的winutils.exe,该文章里讲述了出错的原因;把该执行文件放置在某个路径下,如 c:\\winutils\\bin;在代码中加入这句话:System.setProperty("hadoop.home.dir","C:\\winutils")三、原因...
2018-10-30 18:51:33 903
原创 Leetcode 46. Permutation 全排列
解决思路:排列:从n个元素中任取m个元素,并按照一定的顺序进行排列,称为排列;全排列:当n==m时,称为全排列;比如:集合{ 1,2,3}的全排列为:{ 1 2 3}{ 1 3 2 }{ 2 1 3 }{ 2 3 1 }{ 3 2 1 }{ 3 1 2 }我们可以将这个排列问题画成图形表示,即排列枚举树,比如下图为{1,2,3}的排列枚举树,此树和我们这...
2018-10-26 19:32:54 1077
原创 Leetcode 39 Combination Sum 组合数
解决思路:利用深搜+回溯这里需要注意两点1)为了更好的利用深搜,这里对candidates进行从大到小排序;2)由于candidates中的元素可以重复使用,所以每次深搜都从begin位置开始;3)target >= nums[i] 这个条件很重要,如果nums[i] > target,不能使得target == 0.c...
2018-10-26 09:18:36 129
原创 使用surprise框架为Movieslen数据集中的每个user推荐Top-N个item
#导入相关的库文件import osfrom surprise import Datasetfrom surprise import Readerfrom surprise import SVDfrom surprise import accuracyfrom surprise.model_selection import train_test_splitfrom surprise ...
2018-10-25 22:08:32 1681
原创 Leetcode 34. Find First and Last Position of Element in Sorted Array 在一个有序数组中找到第一个和最后一个元素
解决思路:利用二分法来进行位置的查找,主要涉及两个函数int lower_bound(nums, target) 和 int upper_bound(nums, target); 分别找到target的第一个和最后一个位置。其中主要有一下几个方面需要注意:1)nums为空的情况;直接返回{-1, -1};2)nums中只有一个元素时,注意lower_bound和upper_bo...
2018-10-25 20:14:37 213
翻译 怎样搭建自己的模型
本节介绍一下如何搭建自己的模型搭建自己的预测系统非常简单,使用一个从AlgoBase衍生过来的算法,并且含有estimate方法。使用内置的user id和item id, 返回预测的评分值r^ui:import osfrom surprise import Readerfrom surprise import AlgoBasefrom surprise import Dataset...
2018-10-25 15:07:05 3557
翻译 使用Prediction算法
Prediction算法使用Surprise 提供了许多built-in算法. 所有算法从AlgoBase基类继承, 当使用一些关键的函数时(比如predict, fit 和 test). 可以从prediction_algorithms包文档中获得所有可以使用的算法的详细信息每一个算法都是Surprise的一个全局的命名空间, 所以我们需要从Surprise包中导入算法, 比如一些算法可...
2018-10-25 11:01:12 2556
翻译 Surprise入门
Surprise入门教程#自动交叉验证surprise有一些用来操作的内置算法和数据集,只需要很少的代码就能运行一个自动交叉验证实验import osfrom surprise import SVDfrom surprise import Dataset, Readerfrom surprise.model_selection import cross_validate#指定文件...
2018-10-25 09:55:09 4740
原创 Leetcode 24 成对的交换链表节点 Swap Nodes in Pairs
第一种解法 非递归:更新p和head的值非递归的相关代码如下://非递归代码class Solution {public: ListNode* swapPairs(ListNode* head) { if(!head || !head->next) //不需要交换 return head; L...
2018-10-24 20:44:04 155
原创 Leetcode 22 生成括号 Generate Parentheses
解决方案:利用递归的思想,逐步添加括号,1)生成括号的规则:只有左括号的数量大于右括号的时候,才能添加右括号;2)停止条件:当左右括号的数量相等,总的括号对数等于n时,停止递归;//用递归来生成括号class Solution {public: vector<string> generateParenthesis(int n) { ve...
2018-10-24 19:10:03 109
原创 Leetcode 11. 收集最多的雨水 Container With Most Water
解决方案:利用双指针法进行雨水的计算,先用第一个和最后一个柱子开始收集雨水,这时两个柱子的距离是最远的。不断收缩两个柱子之间的距离,并来收集雨水,因为在收缩过程中,柱子之间的距离不断减小,要想收集更多的雨水,柱子必须要更高。因此在收缩过程中要跳过高度不满足的柱子,然后计算新的容器的收集雨水。//收集最多的雨水class Solution {public: int max...
2018-10-24 17:32:57 300
原创 LeetCode-473火柴棍摆成正方形
LeetCode-473火柴棍摆成正方形Remember the story of Little Match Girl? By now, you know exactly what matchsticks the little match girl has, please find out a way you can make one square by using up all those ma...
2018-06-15 20:43:52 1359 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人