今天在看JDK源码的时候,发现Integer求正数位数的方法,和自己写的方法差异比较大,而且效率很高,具体方法如下:

1     final static int [] sizeTable = { 9, 99, 999, 9999, 99999, 999999, 9999999,
2                                       99999999, 999999999, Integer.MAX_VALUE };
3 
4     // Requires positive x
5     static int stringSize(int x) {
6         for (int i=0; ; i++)
7             if (x <= sizeTable[i])
8                 return i+1;
9     }

简单来说,就是如果x小于等于9,那就是1位数,小于等于99,就是2位数,和自己之前写的用取模方法相比,这种方法的时间复杂度几乎是O(1)

相关文章:

  • 2019-03-28
  • 2021-09-02
  • 2021-09-02
  • 2021-09-02
  • 2018-11-15
  • 2021-12-04
  • 2021-04-02
猜你喜欢
  • 2021-12-18
  • 2021-12-18
  • 2018-01-07
  • 2020-01-31
  • 2021-12-18
  • 2021-12-18
  • 2021-12-18
  • 2021-12-18
相关资源
相似解决方案