LeetCode
ZeroCBoy
世上不缺武林秘籍,缺的是一颗潜心修炼的心。
展开
-
242. Valid Anagram
class Solution {public: bool isAnagram(string s, string t) { if (s.length() != t.length()) return false; int n = s.length(); unordered_map counts; for (int i = 0;原创 2016-09-08 00:49:26 · 411 阅读 · 0 评论 -
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原创 2016-08-30 15:07:36 · 314 阅读 · 0 评论 -
389. Find the Difference
class Solution {public: char findTheDifference(string s, string t) { /*vector count(26,0); for(int i=0;i<s.size();i++) count[s[i]-'a']++; for(int i=0;i<t.size(原创 2016-08-30 11:04:43 · 390 阅读 · 0 评论 -
167. Two Sum II - Input array is sorted
class Solution {public: vector twoSum(vector& numbers, int target) { int i=0; int j=numbers.size()-1; while(1) { int sum=numbers[i]+numbers[j];原创 2016-08-30 09:51:27 · 391 阅读 · 0 评论 -
104. Maximum Depth of 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原创 2016-08-30 09:36:56 · 424 阅读 · 0 评论 -
258. Add Digits
class Solution {public: int addDigits(int num) { return num-(num-1)/9*9; //return num?1+(num-1)%9:0; //return 1+(num-1)%9; //-1%9=-1 }};原创 2016-08-23 00:24:24 · 299 阅读 · 0 评论 -
136. Single Number
class Solution {public: int singleNumber(vector& nums) { int result=0; for(auto iter=nums.begin();iter!=nums.end();iter++) result^=*iter; return result; }原创 2016-08-22 22:59:53 · 322 阅读 · 0 评论 -
292. Nim Game
//如果是4的倍数,无论第一个人取?个,只要第二个人取(4-?)个,都是第二个人赢。所以,只要不是4的倍数,第一个人取完让剩下的是4的倍数,然后采取前面的策略就一定赢。class Solution {public: bool canWinNim(int n) { return n%4?true:false; }};原创 2016-08-22 21:35:14 · 348 阅读 · 0 评论 -
338. Counting Bits
//原理:2(1*2+0)就是在1的二进制表示后面加0(即和1的位数相同),3(1*2+1)就是在1的二进制表示后面加1(即比1的位数多1),4(2*2+0)就是在2的二进制表示后面加0(即和2的位数相同),5(2*2+1)就是在2的二进制表示后面加1(即比2的位数多1),以此类推。class Solution {public: vector countBits(int num) {原创 2016-08-22 18:47:45 · 340 阅读 · 0 评论 -
283. Move Zeroes
class Solution {public: void moveZeroes(vector& nums) { int first=0; while(first<nums.size()&&nums[first]) first++; int second=first+1; while(1)原创 2016-08-30 17:07:53 · 384 阅读 · 0 评论 -
.371. Sum of Two Integers
class Solution {public: int getSum(int a, int b) { while(b) //直到没有进位 { int c=a^b; //先不管进位 b=(a&b)<<1; //进位 a=c; //到这里:相当于a为一个值,b为进位值。原创 2016-08-22 22:49:49 · 336 阅读 · 0 评论 -
.260. Single Number III
class Solution {public: vector singleNumber(vector& nums) { int result=0; for(auto n : nums) result^=n; result=~(result-1)&result; vector ret={0,0};原创 2016-08-30 16:01:34 · 345 阅读 · 0 评论 -
357. Count Numbers with Unique Digits
class Solution {public: int countNumbersWithUniqueDigits(int n) { int ret=1; int product=1; for(int i=0,j=9;i<n;i++) { ret+=product*9; prod原创 2016-09-07 21:08:09 · 376 阅读 · 0 评论 -
100. Same 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原创 2016-09-05 13:15:27 · 308 阅读 · 0 评论 -
122. Best Time to Buy and Sell Stock II
int maxProfit(vector &prices) { int ret = 0; for (size_t p = 1; p < prices.size(); ++p) ret += max(prices[p] - prices[p - 1], 0); return ret;}/*class Solution {public: i原创 2016-09-06 09:45:18 · 297 阅读 · 0 评论 -
171. Excel Sheet Column Number
class Solution {public: int titleToNumber(string s) { int ret=0; for(auto ch : s) ret=ret*26+ch-'A'+1; return ret; }};原创 2016-09-06 09:57:04 · 437 阅读 · 0 评论 -
349. Intersection of Two Arrays
class Solution {public: vector intersection(vector& nums1, vector& nums2) { unordered_set s(nums1.begin(),nums1.end()); vector ret; for(auto x : nums2) if(s.er原创 2016-09-05 11:09:51 · 267 阅读 · 0 评论 -
238. Product of Array Except Self
class Solution {public: vector productExceptSelf(vector& nums) { int n=nums.size(); int fromBegin=1; int fromLast=1; vector res(n,1); for(int i=0;原创 2016-09-05 09:33:38 · 274 阅读 · 0 评论 -
344. Reverse String
class Solution {public: string reverseString(string s) { reverse(s.begin(),s.end()); return s; /*char temp; int left=0; int right=s.size()-1;原创 2016-08-22 17:52:58 · 357 阅读 · 0 评论