摘要:是最高位代表進位,表示本位。就是本位的乘積加上本位已有的值。進位就是除以的余數本位就是剩下的個位數。
43 Multiply Strings
關鍵詞,進位。
public class Solution { public String multiply(String num1, String num2) { int m = num1.length(), n = num2.length(); int[] pos = new int[m + n]; // 0是最高位 for(int i = m - 1; i >= 0; i--) { for(int j = n - 1; j >= 0; j--) { int mul = (num1.charAt(i) - "0") * (num2.charAt(j) - "0"); // p1代表進位, p2表示本位。 int p1 = i + j, p2 = i + j + 1; // sum 就是本位的乘積加上本位已有的值。 int sum = mul + pos[p2]; // 進位就是除以10的余數 pos[p1] += sum / 10; // 本位就是剩下的個位數。 pos[p2] = (sum) % 10; } } StringBuilder sb = new StringBuilder(); for(int p : pos) if(!(sb.length() == 0 && p == 0)) sb.append(p); return sb.length() == 0 ? "0" : sb.toString(); } }
67 Add Binary
public class Solution { public String addBinary(String a, String b) { StringBuilder sb = new StringBuilder(); char[] cha = a.toCharArray(); char[] chb = b.toCharArray(); int i = cha.length-1, j = chb.length -1, carry = 0; while(i >=0 || j>=0) { int vala = i >= 0 ? cha[i--] - "0" : 0; int valb = j >= 0 ? chb[j--] - "0" : 0; int cur = vala+ valb + carry; sb.append(cur%2); carry = cur/2; } if(carry == 1) sb.append(1); return sb.reverse().toString(); } }
415 Add Strings
public class Solution { public String addStrings(String num1, String num2) { StringBuilder sb = new StringBuilder(); for(int i = num1.length() -1, j = num2.length()-1, carry = 0; i >= 0 || j >= 0 || carry == 1; i--, j--){ int x = i < 0 ? 0 : num1.charAt(i) - "0"; int y = j < 0 ? 0 : num2.charAt(j) - "0"; sb.append((x+y+carry)%10); carry = (x+y+carry)/10; } return sb.reverse().toString(); } }
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/66993.html
摘要:題目詳情題目要求輸入兩個以字符串形式表示的正整數,要求我們求出它們的乘積,同樣也是字符串形式表示。要求不能直接將字符串轉換為整數進行乘法運算。想法這道題的思路就是將我們平時手算多位數乘法的計算方法,轉換成程序語言。 題目詳情 Given two non-negative integers num1 and num2 represented as strings, return the ...
摘要:題目要求將兩個形式的數字相乘的結果用的形式返回。不準使用以外的形式來記錄數字。假設,則將結果的十位和個位分別放在數組下標為和的位置上。存儲的位置等同于上一思路。然后再通過一輪遍歷將進位處理一下。 題目要求 Given two non-negative integers num1 and num2 represented as strings, return the product of...
摘要:因為被乘數每一位數字和乘數相乘的結果是依次錯開的,所以就沒問題。判斷兩個數的大小的方法,是先判斷其長度,如果長度不一樣,則較長的較大,如果長度一樣,則需要比較每一位。 Multiply Strings Given two numbers represented as strings, return multiplication of the numbers as a string. ...
摘要:前言從開始寫相關的博客到現在也蠻多篇了。而且當時也沒有按順序寫現在翻起來覺得蠻亂的。可能大家看著也非常不方便。所以在這里做個索引嘻嘻。順序整理更新更新更新更新更新更新更新更新更新更新更新更新更新更新更新更新 前言 從開始寫leetcode相關的博客到現在也蠻多篇了。而且當時也沒有按順序寫~現在翻起來覺得蠻亂的。可能大家看著也非常不方便。所以在這里做個索引嘻嘻。 順序整理 1~50 1...
摘要:如創建一個的矩陣將上面創建的矩陣按照傳入的軸旋轉傳入的弧度旋轉軸,旋轉弧度原型上的方法值為值為初始值為執行之后的值為將按照旋轉軸和弧度旋轉完成的矩陣和幾何體的矩陣相乘框架源碼這里的是因為只傳入一個值和是全等的 矩陣的概念 threejs中的矩陣 矩陣的應用 用于旋轉一個幾何體 創建一個立方體cube放到場景中; showImg(https://segmentfault.com/img/...
閱讀 3323·2021-11-25 09:43
閱讀 3008·2021-10-15 09:43
閱讀 1965·2021-09-08 09:36
閱讀 2918·2019-08-30 15:56
閱讀 742·2019-08-30 15:54
閱讀 2684·2019-08-30 15:54
閱讀 2973·2019-08-30 11:26
閱讀 1237·2019-08-29 17:27