![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
shensccs
这个作者很懒,什么都没留下…
展开
-
LeetCode 118 :Pascal's Triangle
class Solution {public: vector > generate(int numRows) { vector> ans; for(int i = 0;i { vector cur; if(i == 0) cur.push_ba原创 2015-03-29 20:44:32 · 417 阅读 · 0 评论 -
LeetCode 122: Best Time to Buy and Sell Stock II
对比vector中前后两个数,如果后者大于前者,存下差值,所有差值之和就是结果。class Solution {public: int maxProfit(vector& prices) { int size=prices.size(); int maxProfit=0; for (int i=0;i<size-1;i++ ){ if (prices.a原创 2015-05-11 21:16:37 · 257 阅读 · 0 评论 -
LeetCode 202 : Happy Number
如果直接写会发现一个问题,当数字不是happy number 时会陷入死循环。有个trick ,如果有重复就不是happy number , 所以需要用一个哈希表去存算过之后的数,如果重复跳出循环。这里可以用到set容器去存,find()能找出这个数的index,如果不在set中返回end()。class Solution {public: bool isHappy(int n)原创 2015-05-07 21:36:58 · 256 阅读 · 0 评论 -
LeetCode 237 : Delete Node in a Linked List
指针往后指即可/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: voi原创 2015-09-12 15:33:41 · 212 阅读 · 0 评论 -
LeetCode 258 : Add Digits
还是用求余和整型的除法得到每一位的数字,然后用递归去算出只有个位数的结果。class Solution {public: int addDigits(int num) { int sum=0; while(num){ sum=sum+num%10; num=num/10; }原创 2015-09-15 16:37:47 · 400 阅读 · 0 评论 -
LeetCode 226: Invert Binary Tree
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */clas原创 2015-09-17 13:27:25 · 228 阅读 · 0 评论 -
LeetCode 235: Lowest Common Ancestor of a Binary Search Tree
wiki的解释:二叉查找树,也称二叉搜索树、有序二叉树,排序二叉树,是指一棵空树或者具有下列性质的二叉树:1.若任意节点的左子树不空,则左子树上所有结点的值均小于或等于它的根结点的值;2.任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值;3.任意节点的左、右子树也分别为二叉查找树。没有键值相等的节点。根据这种规则,可知:1.如果root的值在p和q之间,原创 2015-09-21 16:04:51 · 232 阅读 · 0 评论 -
LeetCode 144 : Binary Tree Preorder Traversal
先序遍历用递归去实现,先根节点再左子树,右子树。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), rig原创 2015-05-14 20:33:23 · 275 阅读 · 0 评论 -
LeetCode 94: Binary Tree Inorder Traversal
和先序遍历类似,根节点的操作放在中间就可。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(原创 2015-09-22 15:11:41 · 271 阅读 · 0 评论 -
LeetCode 145 : Binary Tree Postorder Traversal
和先序遍历类似,根节点的操作放在最后间就可。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right原创 2015-09-22 15:17:15 · 259 阅读 · 0 评论 -
LeetCode 136 : Single Number
在一个数组中所有数都是成对出现的,除了一个数,找出这个数。普通方法,每个数都比较一遍,时间复杂度太高。简单方法,对所有数异或,最后的结果就是那个单独的数。class Solution {public: int singleNumber(vector& nums) { int a; int t; a=nums.back(); n原创 2015-05-07 22:16:14 · 267 阅读 · 0 评论 -
LeetCode 119: Pascal's Triangle II
循环使用上一行相邻数值相加,需要一个中间变量储存。也可以使用公式,class Solution {public: vector getRow(int rowIndex) { vector row; row.push_back(1); for (int i = 1; i <= rowIndex; ++i) { int t =原创 2015-03-31 20:34:29 · 722 阅读 · 0 评论 -
LeetCode 7: Reverse Integer
把负数转成整数再inverse,注意int最大值是2147483647,要考虑到溢出的情况。class Solution {public: int reverse(int x) { int i=1; long long j=0; bool pos; if(x>=0) pos=0; else if(x原创 2015-03-29 21:07:24 · 232 阅读 · 0 评论 -
LeetCode 9: Palindrome Number
回文数:不能用多余的空间,所以不能转成string去比较。直接对int进行操作,用除法和余数运算去翻转数字,再和原值比较。class Solution {public: bool isPalindrome(int x) { if(x<0) return 0; //if(0<x<10) return 1; //if(x=10) retur原创 2015-03-29 21:13:28 · 309 阅读 · 0 评论 -
LeetCode 172: Factorial Trailing Zeroes
求阶乘末尾0的个数:即为找出2和5的个数。显然2的个数一定比5多,找出5的个数就行了。class Solution {public: int trailingZeroes(int n) { int a=0; while(n) { a+=n/5; n/=5; } r原创 2015-03-29 21:31:46 · 279 阅读 · 0 评论 -
LeetCode 171: Excel Sheet Column Number
example: A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -> 28 类似于一个26进制的数进位:for(int i=0;i{ sum=sum*26+(s[i]-'A'+1);}代码:class Solution {public: int titleToNumber(string s) {原创 2015-03-29 22:14:32 · 261 阅读 · 0 评论 -
LeetCode 169: Majority Element
找出两个不同的元素,成对删除,最后剩下即为所求。时间复杂度O(n)。class Solution {public: int majorityElement(vector &num) { int a=0; int count=0; for(int i=0;i<num.size();i++) {原创 2015-03-29 23:44:27 · 268 阅读 · 0 评论 -
LeetCode 191: Number of 1 Bits
class Solution {public: int hammingWeight(uint32_t n) { int count=0;int i=1; for(i=1;i { count=count+n%2;n=n/2; }return count; }}原创 2015-03-29 20:59:58 · 223 阅读 · 0 评论 -
LeetCode 168: Excel Sheet Column Title
和171题Excel Sheet Column Number类似,反向操作即可。class Solution {public: string convertToTitle(int n) { vector a; string s; while(n) { n--; a.push_back(n%26+65);原创 2015-03-30 01:28:27 · 272 阅读 · 0 评论 -
LeetCode 104: Maximum Depth of Binary Tree
方法1:递归,返回左子树或右子树加1,然后把这个值当做下次的输入。class Solution {public: int maxDepth(TreeNode *root) { if(root==NULL) return 0; else { int l=maxDepth(root->left原创 2015-03-31 20:54:19 · 268 阅读 · 0 评论 -
LeetCode 100: Same Tree
也是用递归的思想,判断左右子树是否一样class Solution {public: bool isSameTree(TreeNode *p, TreeNode *q) { if(!p && !q) return 1; if(!p || !q) return 0; return (p->val == q->val) && is原创 2015-03-31 21:20:21 · 339 阅读 · 0 评论 -
LeetCode 110 : Balanced Binary Tree
先写一个计算深度的函数,用类似之前遍历的方式即可。判断是否为平衡树,遍历每个节点的子树是否是平衡树,如果子树都是平衡树那么它一定是平衡的。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right;原创 2015-09-24 16:26:40 · 267 阅读 · 0 评论