上一页 1 ··· 8 9 10 11 12 13 下一页

2014年3月13日

空格替换

摘要: 1 #include 2 #include 3 using namespace std; 4 5 void f(char *s) 6 { 7 char *p=s; 8 while(*s!='\0') 9 {10 if(*s==' ')11 {12 while(*p!='\0')13 p++;14 while(p>s)15 {16 *(p+2)=*p;17 p--;1... 阅读全文

posted @ 2014-03-13 10:21 crane_practice 阅读(170) 评论(0) 推荐(0) 编辑

2014年3月12日

Palindrome Number

摘要: 1 bool isPalindrome(int x) { 2 if(x=10) 9 div*=10;10 while(x)11 {12 i=x/div;13 j=x%10;14 if(i!=j)15 return false;16 x=(x%div)/10;17 div /= 100;18 }19 return true;20 ... 阅读全文

posted @ 2014-03-12 21:09 crane_practice 阅读(171) 评论(0) 推荐(0) 编辑

String to Integer (atoi) ???

摘要: 1 #define INT_MAX 2147483647 2 #define INT_MIN -2147483648 3 class Solution { 4 public: 5 int atoi(const char *str) { 6 //string如果能转换成int的话,各位都要是数字,一个例外是第一个字符可以是负号 7 int n=strlen(str); 8 int i=0; 9 int flag=0;//0表示正值,1表示负值10 int val=0;11 /*12 ... 阅读全文

posted @ 2014-03-12 09:27 crane_practice 阅读(407) 评论(0) 推荐(0) 编辑

2014年3月11日

Reverse Integer

摘要: 1 int reverse(int x) {2 int y=0;3 while(x)4 {5 y=y*10+x%10;6 x=x/10;7 }8 return y;9 }我试过了,不用区分是正数还是负数,他们的计算方法是一样的上面的代码虽然AC了,不过题上spoilers说的好,有可能会溢出,这个上述代码并没有考虑32位,1位符号位,剩下31位,表示范围 From−2,147,483,648 to 2,147,483,647, from −(231) ... 阅读全文

posted @ 2014-03-11 15:44 crane_practice 阅读(172) 评论(0) 推荐(0) 编辑

Two Sum

摘要: 之前遇到一道题和这个基本一样,数组中元素各不相同,另外创建一个数组,里面的元素为target依次减去原数组中所有元素,然后两个数组合并,排序,扫描,如果有相邻元素相等并且不等于target的一半,则说明原数组中有两个不同的元素和为target。不过这个题目的返回值是两个,这个怎么做到?而且函数的返回值类型为vector······这个我现在真不会,参看了别人的写法才知道是这么写的:vectorret(2,0)Submission Result:Runtime Error,不要怕错,要从错误中吸取经验和教训 1 class Soluti 阅读全文

posted @ 2014-03-11 14:42 crane_practice 阅读(223) 评论(0) 推荐(0) 编辑

2014年3月9日

Path Sum

摘要: 常规做法是算出每一条路径的和然后和sum比较。类似的题目是打印出从根节点到每个叶子节点的路径。之前学过分支界限法,刚开始觉得可以用来解这道题,不过再想想的话觉得应该不行,分支界限法是找最优化的。常规的做法中加上一些小的判别,会付出一些代价,不过也许会比盲目相加好一些吧。比如说每到一个结点sum就减去那个结点的值,如果结果小于0就不走这条路了。不过问题是题目上并没有说结点的值都是正值呀,所以这样不行。二叉树的非递归遍历参看:http://blog.csdn.net/kofsky/article/details/2886453/*http://www.cppblog.com/CodeStream/ 阅读全文

posted @ 2014-03-09 21:01 crane_practice 阅读(190) 评论(0) 推荐(0) 编辑

Minimum Depth of Binary Tree

摘要: Maximum Depth of Binary Tree可以这样写1 int maxDepth(TreeNode *root) {2 if(!root)3 return 0;4 else5 return 1+max(maxDepth(root->left),maxDepth(root->right));6 }Minimum Depth of Binary Tree如果仿照上面1 int minDepth(TreeNode *root) {2 if(!root)3 re... 阅读全文

posted @ 2014-03-09 19:25 crane_practice 阅读(201) 评论(0) 推荐(0) 编辑

Plus One

摘要: 我觉得逻辑上是清晰的,但是写起来很别扭,感觉不好写,写出来,结果是错的······而且vector,哪里是头哪里是尾?12345我的想法是1是尾,5是头,每次添加都是从尾添加的。而且这个表示的数应该是12345而不是54321,不知道这么理解对不? 1 class Solution { 2 public: 3 vector plusOne(vector &digits) { 4 vector::size_type i,n; 5 n=digits.size(); 6 for(i=0;i' [-fpermissive]13 阅读全文

posted @ 2014-03-09 19:01 crane_practice 阅读(158) 评论(0) 推荐(0) 编辑

2014年3月8日

Maximum Depth of Binary Tree

摘要: 第一反应是用按层次遍历,用队列做。看了别人的代码才想起来也可以用递归去做。就是比较根的左右子树的深度,深度大的那个再加一就是根的深度了。递归: 1 /** 2 * Definition for binary tree 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8 * }; 9 */10 class Solution {11 p... 阅读全文

posted @ 2014-03-08 10:39 crane_practice 阅读(284) 评论(0) 推荐(0) 编辑

2014年3月7日

Symmetric Tree

摘要: 1 /** 2 * Definition for binary tree 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8 * }; 9 */10 class Solution {11 public:12 bool isSymmetricSame(TreeNode *p,TreeNode *q)13 {14 ... 阅读全文

posted @ 2014-03-07 11:04 crane_practice 阅读(106) 评论(0) 推荐(0) 编辑

上一页 1 ··· 8 9 10 11 12 13 下一页

导航