Skip to content

Commit

Permalink
Finish 188/219
Browse files Browse the repository at this point in the history
  • Loading branch information
fanfank committed Jul 11, 2015
1 parent 04484ca commit bc92726
Show file tree
Hide file tree
Showing 4 changed files with 62 additions and 1 deletion.
21 changes: 21 additions & 0 deletions invert-binary-tree.cpp
@@ -0,0 +1,21 @@
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
TreeNode* invertTree(TreeNode* root) {
if (root == NULL) {
return root;
}
swap(root->left, root->right);
invertTree(root->left);
invertTree(root->right);
return root;
}
};
10 changes: 10 additions & 0 deletions power-of-two.cpp
@@ -0,0 +1,10 @@
class Solution {
public:
bool isPowerOfTwo(int n) {
if (n <= 0) {
return false;
}
n &= (n - 1);
return n == 0;
}
};
2 changes: 1 addition & 1 deletion readme.md
@@ -1,3 +1,3 @@
###__Greatness from Basis comes__
Finished 185/218
Finished 188/219
Reetsee.Xu last updated on 2015.07.11
30 changes: 30 additions & 0 deletions summary-ranges.cpp
@@ -0,0 +1,30 @@
class Solution {
public:
vector<string> summaryRanges(vector<int>& nums) {
vector<string> range_vector;
size_t nums_size = nums.size();
if (nums_size == 0) {
return range_vector;
}

int last_num = nums[0];
for (size_t i = 1; i < nums_size; ++i) {
if (nums[i] != nums[i-1] + 1) {
addRange(range_vector, last_num, nums[i-1]);
last_num = nums[i];
}
}
addRange(range_vector, last_num, nums.back());
return range_vector;
}

void addRange(vector<string>& range_vector, int left, int right) {
char range[32];
if (left == right) {
snprintf(range, sizeof(range), "%d", left);
} else {
snprintf(range, sizeof(range), "%d->%d", left, right);
}
range_vector.push_back(range);
}
};

0 comments on commit bc92726

Please sign in to comment.