Multiply Strings:乘法运算
来源:互联网 发布:怎么免费开淘宝店 编辑:程序博客网 时间:2024/06/07 20:45
Given two non-negative integers num1
and num2
represented as strings, return the product of num1
and num2
.
Note:
- The length of both
num1
andnum2
is < 110. - Both
num1
andnum2
contains only digits0-9
. - Both
num1
andnum2
does not contain any leading zero. - You must not use any built-in BigInteger library or convert the inputs to integer directly.
Start from right to left, perform multiplication on every pair of digits, and add them together. Let's draw the process! From the following draft, we can immediately conclude:
`num1[i] * num2[j]` will be placed at indices `[i + j`, `i + j + 1]`
其实就是累加求和,注意下标位置,P2表示结果中的当前位置,P1表示结果中的进位位置。index中的i、j对应的是自己从左往右的位置,而不是针对结果中的下标位置。
class Solution { public String multiply(String num1, String num2) { int m = num1.length(); int n = num2.length(); int[] r = new int[m+n];//m*n最多只能产生m+n位的结果 for(int i=m-1;i>=0;i--){ for(int j=n-1;j>=0;j--){ int p1 = i+j;//p1表示进位 int p2 = i+j+1;//p2表示当前位 int sum = (num1.charAt(i)-'0')*(num2.charAt(j)-'0')+r[p2];//当前位置结果需要累加上之前的结果 r[p2] = sum % 10;//当前的结果 r[p1] = sum /10 + r[p1];//当前运算的进位对上一位的影响 } } StringBuilder b = new StringBuilder(); for(int i = 0;i<m+n;i++){ if(!(r[i]==0&&b.length()==0)) b.append(r[i]); } return b.length()==0?"0":b.toString(); }}复杂度:O(N^2)
另外:
Fast Fourier transform(FFT)。使用FFT可以在O(nlogn)时间内求出多项式的乘法
阅读全文
0 0
- Multiply Strings:乘法运算
- 【大数乘法】Multiply Strings
- 大数乘法(Multiply Strings)
- Multiply Strings 大数乘法
- LeetCode-------43. Multiply Strings(字符串的乘法运算)
- 大数的乘法 Multiply Strings
- Multiply Strings(大整数乘法)
- LeetCode Multiply Strings 高精度乘法C++实现
- Multiply Strings 两个字符串的乘法
- LeetCode Multiply Strings 高精度乘法C++实现
- LeetCode-Multiply Strings实现大数的乘法
- [leetcode] 43 Multiply Strings(模拟大数乘法)
- LeetCode 43. Multiply Strings(乘法)
- leetcode---Multiply Strings---大整数乘法
- 43. Multiply Strings(string模拟大数乘法)
- LeetCode | 43. Multiply Strings(大整数乘法)
- LeetCode 43 Multiply Strings(高精度乘法)
- 大整数乘法--leetcode Multiply Strings
- SSH 配置c3p0出问题
- Linux C利用Socket套接字进行服务器与多个客户端进行通讯
- jsoNJuexi
- 加密算法(自己写)java自己给明文密码加密
- laravel-admin select下拉中文提示问题
- Multiply Strings:乘法运算
- Logback浅析
- Sql 自定义函数结构
- 集群之 -- zookeeper -JAVA小例子bean操作
- FreeSWITCH学习笔记 第一场 第八个镜头 API和App
- NIO核心知识(区别、Channel、Buffer、Selector、SelectionKey、完整代码案例)
- SVM核函数的分类
- 数据库_等值连接与自然连接的区别
- LBP纹理特征