LeetCode 学习笔记
徐赤赤
这个作者很懒,什么都没留下…
展开
-
LeetCode 148: SortList, 206:Reverse linked list
/**206:Reverse linked list*/struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} };ListNode* reverseList(ListNode* head) { if(!head||!head->ne原创 2016-04-26 10:06:31 · 230 阅读 · 0 评论 -
LeetCode 263. Ugly Number 264 Ugly Number II 313 Super Ugly Number
/**263 ugly number是一个数的因子是否只包含2,3,5(1被看作是ugly number)*/bool isUgly(int num) { if(num<=0) return false; while(num%2==0) num/=2; while(num%3==0) num/=3; wh原创 2016-05-03 15:18:54 · 339 阅读 · 0 评论 -
leetCode: 求最大子段和,最大子段乘积,求除了其本身之外的其他数的乘积
/**最大子段和:*/int maxSubArray(vector& nums) { vectorres(nums.size(),INT_MIN); res[0] = nums[0]; for(int i=1;i<res.size();i++){ res[i] =max(res[i-1]+nums[i],nums[i]); } int原创 2016-04-17 13:32:41 · 1582 阅读 · 0 评论 -
leetCode:121\122\309 股票买入和卖出获取最大收益问题
/**leetCode 121 :动态规划求 最佳买入和卖出股票 给出一组int数组,每个值代表当天股票的价格,你只能买1次并且卖1次,求最大收益 动态规划求解:*/int maxProfit(vector& prices) { if(prices.size()==0) return 0; int buy = INT_MAX; int p原创 2016-04-16 19:26:35 · 829 阅读 · 0 评论 -
LeetCode 198,213,337 House Robber 1,2,3
//198.House Robber/* 小偷偷东西,每不能偷相邻房子里的东西,求可以偷的最大值 动态规划解决: 递推公式:res[n] = max(res[n-1],res[n-2]+a[n]);*/int rob(vector& nums) { vector res(nums.size(),0); res[0] = nums[0]; res原创 2016-04-15 21:12:11 · 302 阅读 · 0 评论 -
leetCode 108,109:Convert Sorted Array/List to Binary Search Tree
/*将排好序的数组/链表转化成为一棵平衡的二叉查找树*///数据结构定义:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * };原创 2016-04-15 16:24:15 · 299 阅读 · 0 评论 -
leetCode 96:Unique Binary Search Tree
//给出一个数字n,返回所有的唯一的二叉查找树的数量,比如n=3,节点1,2,3可以构造5课不同的二叉查找树/*采用动态规划的方法:在计算n个节点组成的二叉查找树的时候,需要找到分别以1,2,....n为根节点的二叉查找树的数目,记为F(0,n),F(1,n).....F(n,n),其中F(i,n)的意思是以节点为根节点的二叉查找树的数目。当以i(1的F(i,n)=G(i-1)*G原创 2016-04-15 09:50:51 · 218 阅读 · 0 评论 -
leetCode 145:Binary Tree Postorder Traversal
//非递归的后序遍历二叉树://首先跳转到某个节点的最左儿子并把路径上经过的点压栈,如果最左儿子没有右儿子或者其右儿子已经被访问过了,那么我们遍历它。/*重点在于当访问栈顶元素时,要看栈顶元素的右子树是否被访问过了,这就需要先把栈顶元素POP出来,判断是否可以遍历,如果不行,需要再把它压入栈中,并且指向其右子树*/vector postorderTraversal(TreeNode*原创 2016-04-15 09:39:45 · 204 阅读 · 0 评论 -
leetCode 230.Kth Smallest Element in a BST
//找到一个二叉查找树的第K小的个元素//中序遍历二叉查找树,第K次访问的值就是整个二叉树的第K小的元素struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {} };int kthSmal原创 2016-04-15 08:59:09 · 221 阅读 · 0 评论 -
LeetCode 241. Different Ways to Add Parentheses
/**Leetcode 241 Different Ways to Add ParenthesesInput: "2*3-4*5"(2*(3-(4*5))) = -34((2*3)-(4*5)) = -14((2*(3-4))*5) = -10(2*((3-4)*5)) = -10(((2*3)-4)*5) = 10Output: [-34, -14, -10, -10, 10]原创 2016-04-26 11:33:02 · 254 阅读 · 0 评论 -
LeetCode 46 47....排列问题
/**46:排列问题:给出一个包含不同数字的集合,返回这个集合的所有排列For example,[1,2,3] have the following permutations:[1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], and [3,2,1].使用递归方法返回其所有排列*/void permuteRecuresive(vector&num原创 2016-04-21 10:51:41 · 241 阅读 · 0 评论