zoukankan      html  css  js  c++  java
  • LeetCode 29. 两数相除 时间击败【100.00%】 内存击败【76.25%】

    不禁让我想起了计算机是怎样进行除法运算的,单独考虑溢出以及边界情况,单独考虑符号,其他过程和我们小学除法是一模一样的:左移除数(十进制就是扩大十倍,二进制扩大两倍),直到正好比被除数小,一边累加商(在我的代码里就是33行)一边减小被除数,直到被除数不能减小,右移除数,重复上述过程。

     1 public int divide(int dividend, int divisor) {
     2         if (dividend == Integer.MIN_VALUE && divisor == -1) return Integer.MAX_VALUE;
     3         if (dividend == Integer.MIN_VALUE && divisor == Integer.MIN_VALUE) return 1;
     4         if (divisor == Integer.MIN_VALUE) return 0;
     5         
     6         int ans = 0, neg = 0;
     7         if (dividend == Integer.MIN_VALUE) {
     8             if (divisor < 0) dividend -= divisor;
     9             else dividend += divisor;
    10             ans++;
    11             if (dividend >= 0) neg ^= 1;
    12         }
    13         if (dividend < 0) {
    14             neg ^= 1;
    15             dividend *= -1;
    16         }
    17         if (divisor < 0) {
    18             neg ^= 1;
    19             divisor *= -1;
    20         }
    21         if (dividend < divisor) return neg == 1 ? -ans : ans;
    22 
    23         int res = 1;
    24         while (divisor <= dividend / 10) {
    25             divisor *= 10;
    26             res *= 10;
    27             if (dividend == divisor && dividend == 0) return neg == 1 ? -ans : ans;
    28         }
    29 
    30         while (divisor != 0) {
    31             while (dividend >= divisor) {
    32                 dividend -= divisor;
    33                 ans += res;
    34             }
    35             while (dividend < divisor) {
    36                 divisor /= 10;
    37                 res /= 10;
    38             }
    39         }
    40         return neg == 1 ? -ans : ans;
    41     }
  • 相关阅读:
    解决ScrollView嵌到listView冲突问题
    Popupwindow 的简单实用,(显示在控件下方)
    BroadCast,BroadCastReceiver
    NSURLSession
    sirikit
    MJExtension使用
    iOS中的translucent和automaticallyAdjustsScrollViewInsets用法
    如何获取LanuchImage-1(详细)
    如何获取LanuchImage
    MJRefresh详解
  • 原文地址:https://www.cnblogs.com/towerbird/p/11706661.html
Copyright © 2011-2022 走看看