LeetCode
nianiajr
http://www.liangjiarui.com/
展开
-
189 Rotate Array
方法一:class Solution {public: void rotate(int nums[], int n, int k) { int tmp[n]; for(int i=0; i<n; i++){ tmp[i]=nums[i]; } for(int i=0; i<n; i++){原创 2015-03-14 23:20:12 · 474 阅读 · 0 评论 -
107 Binary Tree Level Order Traversal II
方法一:普通宽度优先class Solution {public: vector > levelOrderBottom(TreeNode *root) { vector >ans; if(root==NULL) return ans; queue q1; queue q2; b原创 2015-04-09 20:59:33 · 620 阅读 · 0 评论 -
198 House Robber
方法一:动态规划,简单dpclass Solution {public: int rob(vector &num) { if(num.empty())return 0; int sz=num.size(); int dp[sz+5][4]; memset(dp,0,sizeof(dp)); dp[0][1]=原创 2015-04-09 20:18:35 · 639 阅读 · 0 评论 -
190 Reverse Bits
#include using namespacestd;int main(int argc,const char * argv[]) { // insert code here... uint32_t num, sum=0; cin>>num; for(int i=0; i31; i++){ if( (num原创 2015-03-13 12:49:22 · 643 阅读 · 0 评论 -
191 Number of 1 Bits
#include using namespace std;int main(int argc, const char * argv[]) { // insert code here... uint32_t num, sum=0; cin>>num; for(int i=0; i<=31; i++){ if( (num&(1<<i)) !=0原创 2015-03-13 12:42:23 · 452 阅读 · 0 评论 -
110 Balanced Binary Tree
方法一:(笨办法,把每一个结点的两个子树深度作差,判断是否小于1,进行深度优先遍历判断,貌似复杂度比较高)class Solution {public: int getDepth(TreeNode *root){ if(root==NULL) return 0; if(root->left==NULL&&root->right=原创 2015-03-17 17:34:27 · 712 阅读 · 0 评论 -
112 Path Sum
方法一:(深度优先搜索遍历,注意边界条件处理,以及初始根为空的情况)class Solution {public: bool hasPathSum(TreeNode *root, int sum) { bool f=false; if(root==NULL) return false; if(root->left=原创 2015-03-17 11:49:26 · 520 阅读 · 0 评论 -
111 Minimum Depth of Binary Tree
方法一:(深度优先搜索,记得单个结点深度为1,注意边界情况。)class Solution {public: int minDepth(TreeNode *root) { if(root==0) return 0; if(root->left==NULL&&root->right==NULL) retur原创 2015-03-17 12:19:24 · 601 阅读 · 0 评论 -
119 Pascal's Triangle II
方法一:(模拟杨辉三角的特点,用一个数组进行不断更新,也就是上一层两数的和为下一层的数,循环k次,时间复杂度是O(n^2)的,空间复杂度是O(k)的class Solution {public: vector getRow(int rowIndex) { vectorvec; vec.push_back(1); for(int i=1; i原创 2015-03-16 17:32:39 · 549 阅读 · 0 评论 -
118 Pascal's Triangle
class Solution {public: vector > generate(int numRows) { vectorvec; vector >ans; if(numRows==0) return ans; vec.push_back(1); ans.push_back(vec原创 2015-03-16 20:34:13 · 456 阅读 · 0 评论 -
165 Compare Version Numbers
方法一:(每一个”."的子段比较所代表的数字,其中去除前导零)class Solution {public: int compareVersion(string version1, string version2) { int i=0,j=0; while(true){ int n1=0, n2=0; whi原创 2015-03-16 11:07:01 · 801 阅读 · 0 评论 -
155 Min Stack
方法一:(维护一个最小值的栈,每次入栈与进栈都要对其进行维护)class MinStack {public: MinStack() { sz=0; } void push(int x) { if(sz==0){ m=x; mins.push(x); } els原创 2015-03-16 13:03:40 · 604 阅读 · 0 评论 -
125 Valid Palindrome
方法一:(两个指针,对称比较,过滤掉非字幕数字的字符进行判断,时间复杂度O(n))class Solution {public: bool isPalindrome(string s) { for(int i=0, j=int(s.length())-1; i<=j;){ if(!isalpha(s[i])&&!isdigit(s[i]))原创 2015-03-16 16:16:05 · 485 阅读 · 0 评论 -
160 Intersection of Two Linked Lists
方法一:(先遍历两个序列,找到长度,然后让长的那个序列先移动多处的结点数,剩下的就是找到共同的点了,时间复杂度应该是O(n+m)的,空间复杂度为常数)class Solution {public: ListNode *getIntersectionNode(ListNode *headA, ListNode *headB) { int len1=0, len2=0;原创 2015-03-16 12:09:36 · 520 阅读 · 0 评论 -
168 Excel Sheet Column Title
方法一:(模拟数学中求二进制的2除法)class Solution {public: string convertToTitle(int n) { char tabs[27]; string ans=""; tabs[1]='A'; for(int i=2; i<=26; i++) tabs[i]=c原创 2015-03-16 09:58:42 · 632 阅读 · 0 评论 -
169 Majority Element
方法一(排序+查找,复杂度O(nlogn)class Solution {public: int majorityElement(vector &num) { sort(num.begin(), num.end()); int ans=0, ans_t=num.size()/2-1, pre=num[0], t=0; for(int i=原创 2015-03-15 20:34:37 · 515 阅读 · 0 评论 -
171 Excel Sheet Column Number
class Solution {public: int titleToNumber(string s) { int p=1,sum=0; for(int i=int(s.length())-1; i>=0; i--){ sum=sum+(s[i]-'A'+1)*p; p*=26; }原创 2015-03-15 19:40:45 · 508 阅读 · 0 评论 -
172 Factorial Trailing Zeroes
//质数因子的使用class Solution {public: int trailingZeroes(int n) { int zeros=0; while(n>0){ zeros=zeros+n/5; n=n/5; } return zeros; }};原创 2015-03-15 18:33:45 · 510 阅读 · 0 评论 -
104 Maximum Depth of Binary Tree
方法一:深度优先遍历class Solution {public: int maxDepth(TreeNode *root) { if(root==NULL) return 0; if(root->left==NULL&&root->right==NULL) return 1; int mx原创 2015-04-09 21:12:20 · 642 阅读 · 0 评论