Algorithms—43.Multiply Strings
来源:互联网 发布:淘宝回购率 编辑:程序博客网 时间:2024/05/15 10:29
思路:按照乘法的定义,逐位相乘。
public class Solution { public String multiply(String num1, String num2) { if (num1.equals("0")||num2.equals("0")) {return "0";} if (num1.length()<num2.length()) {return multiply(num2,num1);} int l1=num1.length(); int[] n1=new int[l1]; for (int i = 0; i <l1; i++) {n1[l1-i-1]=Integer.parseInt(num1.substring(i, i+1));} int l2=num2.length(); int[] n2=new int[l1]; for (int i = 0; i <l2; i++) {n2[l2-i-1]=Integer.parseInt(num2.substring(i, i+1));} int[] a=new int[l1+l2-1]; int sum=0; int carry=0;for (int i = 0; i < a.length; i++) {// 每一位乘级相加的结果for (int j = Math.max(0,i-l2+1); j <= Math.min(i,l1-1); j++) {sum += n1[j] * n2[i-j];}// 加进位sum += carry;carry = sum / 10;sum%=10;a[i]=sum;sum = 0;}StringBuffer sb=new StringBuffer();if (carry!=0) {sb.append(String.valueOf(carry));} for (int i = a.length-1; i >=0 ; i--) {sb.append(String.valueOf(a[i]));} return sb.toString(); }}
耗时:368ms,中下游。
0 0
- Algorithms—43.Multiply Strings
- [LeetCode]43.Multiply Strings
- LeetCode --- 43. Multiply Strings
- [Leetcode] 43. Multiply Strings
- 43. Multiply Strings
- 43. Multiply Strings
- [leetcode] 43.Multiply Strings
- 43. Multiply Strings
- 43. Multiply Strings
- 43. Multiply Strings
- 43. Multiply Strings
- 43. Multiply Strings LeetCode
- 43. Multiply Strings
- 43. Multiply Strings
- 43. Multiply Strings
- leetcode 43. Multiply Strings
- LeetCode 43. Multiply Strings
- LeetCode 43. Multiply Strings
- ActivityLifecycleCallbacks简单介绍
- UINavigationController使用详解
- Trie模板
- hdu1011 树形dp
- iOS DEV info 启动画面 icon
- Algorithms—43.Multiply Strings
- 困扰着初级程序员的无数个BUG
- iOS tableView索引
- ionic项目之ngcordova插件之camera
- 超长正整数相加
- CodeForces 469C - 24 Game
- pthread_create线程创建的过程剖析
- 杭电 2032 杨辉三角
- C++11学习笔记(变量和基本类型)