时段 | 学习情况总结 |
上午 | 停水停电的一天。。。 |
中午 | 停水停电。。。学习一点数学之美,关于余弦定理和新闻分类的联系,计算向量的余弦值估计新闻相关性
|
晚上 | 大数相乘。用java字符串写的,性能不ok寻找提升办法: 学习b站小姐姐优秀代码,是用数组接收中间结果,比我的用字符串接收中间结果快多了,这一点我值得学习!!! 运行较慢,思路是,利用字符串每位相乘,再移位,相加发布于 1 小时前1Java大数 解题思路此处撰写解题思路 代码(以下是我的代码版本) |
class Solution {
public String multiply(String num1, String num2) {
if(num1.equals("0")||num2.equals("0")){
return "0";
}
String rs = "0";
String temp1 = num1, temp2 = num2;
String temp = "";
String str = "";
int index = -1;//移位标志
int moreOver = 0;//进位标志
if(num1.length() < num2.length()){
temp1 = num2; temp2 = num1;
}
for(int i = temp2.length()-1; i>=0; i--){
temp = "";
//乘法
for(int j = temp1.length()-1; j>=0; j--){
int val = (temp1.charAt(j)-'0')*(temp2.charAt(i)-'0') + moreOver;
moreOver = val/10;
temp = val%10 + "" + temp;
}
if(moreOver!=0){
temp = moreOver+""+temp;
}
index++;//移位
for(int j = 0; j < index; j++){
temp = temp + "0";
}
//加法
moreOver = 0;
int j = temp.length()-1, k = rs.length() - 1;
while(j>=0||k>=0){
int val = moreOver;
if(j>=0){
val = temp.charAt(j--) - '0'+ val;
}
if(k>=0){
val = rs.charAt(k--) - '0'+val;
}
moreOver = val/10;
str = val%10 + "" + str;
}
if(moreOver!=0){
str = moreOver + "" + str;
}
moreOver = 0;
rs = str;str="";
}
return rs;
}
}
学习李宏毅机器学习课程,收获挺多。