中级农民
- 积分
- 112
- 大米
- 颗
- 鳄梨
- 个
- 水井
- 尺
- 蓝莓
- 颗
- 萝卜
- 根
- 小米
- 粒
- 学分
- 个
- 注册时间
- 2012-7-28
- 最后登录
- 1970-1-1
|
- int divide(int dividend, int divisor) {
- if(dividend == 0) return 0;
- if(divisor == 0 || (dividend == INT_MIN && divisor == -1)) return INT_MAX;
-
- int sign = (dividend > 0) ^ (divisor > 0) ? -1 : 1;
- long x = labs(dividend), y = labs(divisor);
- int result = 0;
- while(x >= y) {
- int i = 0;
- while(x >= y << i) i++;
- i--;
- result += 1 << i;
- x -= y << i;
- }
-
- return result * sign;
- }
复制代码- int helper(Node *root, int &result) {
- if(!root) return 0;
- int l = helper(root->left, result);
- int r = helper(root->right, result);
- result = max(result, l + r + 1);
- return max(l + 1, r + 1);
- }
- int longestPath(Node *root) {
- int result = 0;
- helper(root, result);
- return result;
- }
复制代码 |
|