[leetcode_113]Path Sum II

给一个二叉树root和一个target值,求所有从根开始到叶节点的路径和等于target的路径。 class Solution { public: void MoveOnPath(TreeNode *node,int sum,int &val,vector<int>&item,vector<vector<int>>&ans) { if(node == NULL)retur……

[leetcode_78]Subsets

给定一个数组,比如{1,2,3,4} 求出 该集合的所有子集。 其中WA一次,因为要求升序排列。 搜索即可。 int cmp(int a,int b) { return a < b; } class Solution { public: void AddItemStep(int i,int k,vector<int>&S,vector<vector<int>>&ans,vector<int>&item) { ……

[leetcode_16]3Sum Closest

给定一个array,和一个target,要求求array中三个数之和与target最接近。保证唯一解。 直接暴力会超时。 可以排序,两层暴力,然后第三层用二分。就不会超时了。 int cmp(int a,int b) { return a < b; } class Solution { public: int bSearch(int tmp,int left,vector<int>&num,int right) { ……

[leetcode_42]Trapping Rain Water

根据题目要求,求出灌入水的多少。 先找出某段中的比两边界较小值 要大的最大值。如果存在该值,将问题拆分为 左+最大值的index和最大值的index+右。 如果不存在该最大值,表示两个边界都比中间的大,灌水求和即可。 class Solution { public: int sum; void WaterStep(int A[],int left,int right) { i……

[leetcode_129]Sum Root to Leaf Numbers

二叉树从根开始每个结点存放一个0~9的数字,计算从根开始到叶节点生成的所有数字之和。从根开始搜索,到一个叶节点,将string转换加到结果里面就行。 class Solution { public: int ConvertNumber(string &tmpNumber) { int number = 0; for(int i = 0;i < tmpNumber.length();i++) { ……