今天在leetcode上面做题目,有一道数组形式的整数加法运算,本来以为还蛮简单的,想着直接将数组先转化为String类型,然后直接相加就好,

  代码如下: 

  var addToArrayForm = function(A, K) {
    let result = A.toString().replace(/,/g,'')
    let c = String(+result+K)
    let arr = [...c]
    return arr
  };

结果验证没有通过:addToArrayForm ([1,2,6,3,0,7,1,7,1,9,7,5,6,6,4,4,0,0,6,3] ,516);

开始怎么也没有找到问题在哪里,还觉得自己的逻辑没毛病,后来仔细检查才发现原来Number类型有一个最大范围和最小范围,可以使用性Number.MAX_VALUE , Number.MIN_VALUE属性进行查看,

是正负2的53次方,超出最大范围后精确性就会降低,此时如果需要运算的话可以考虑使用字符串的方式进行,经过后期思考后,

  修改过的代码如下:

  var addToArrayForm = function(A, K) {
    var ik = String(K).split('');
    var maxLength = Math.max(A.length,ik.length);
    var mow = new Array(maxLength)
    for(let i =1;i<maxLength+1;i++) {
      let r1 = +A[A.length-i]||0,r2=+ik[ik.length-i]||0
      let result = r1+r2+(mow[mow.length-i]||0);
      mow[mow.length-i] = result
      if (mow[mow.length-i] >= 10){
        mow[mow.length-i] = result-10
        if(mow.length-i == 0 ){
          mow.unshift(1)
        }else {
          mow[mow.length-i-1] = (mow[mow.length-i-1] || 0)+1
        }
      }
     }
    return mow
  };

最新文章

  1. CDN服务技术架构图
  2. shell脚本实现数据库自动备份和删除备份
  3. iOS 编译报错
  4. SQL Server集群服务器的优缺点
  5. require.js的用法
  6. 在MVC中要实现Ajax
  7. SkinSharp用法
  8. Java API ——Character类
  9. win 10应用商店下载应用错误码0x80070422
  10. (转载)Mysql查找如何判断字段是否包含某个字符串
  11. CI 笔记2,(命令规范等)
  12. 【翻译】在Ext JS 5种使用ViewControllers
  13. canvas动画之动态绘出六边形
  14. php操作mongodb的常用函数
  15. windows搭建RocketMQ服务
  16. USB2.0学习笔记连载(十四):USB驱动安装及固件程序的编写
  17. myeclipse maven工程调试调试
  18. J2SE 8的Lambda --- functions
  19. python使用twisted搭建的一个socket服务
  20. CF280C Game on Tree 期望

热门文章

  1. 【java】字符串截取
  2. spring学习2
  3. Q1094
  4. LeetCode 641. Design Circular Deque
  5. 如何关闭/禁用.NET JIT调试对话框
  6. Vue响应式原理以及注意事项
  7. java基础 static
  8. Leetcode 5281. 使结果不超过阈值的最小除数
  9. 微信网页授权+获取用户基本信息+强制关注+JSSDK分享参数
  10. IIS 安装 .net core 绑定为 https 使用SSL证书