拒绝懒惰-day2

时段学习情况总结
上午

停水停电的一天。。。

中午

停水停电。。。学习一点数学之美,关于余弦定理和新闻分类的联系,计算向量的余弦值估计新闻相关性

 

 

晚上

大数相乘。用java字符串写的,性能不ok寻找提升办法:

学习b站小姐姐优秀代码,是用数组接收中间结果,比我的用字符串接收中间结果快多了,这一点我值得学习!!!

运行较慢,思路是,利用字符串每位相乘,再移位,相加

nearbyL1

发布于 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;
    }
}

学习李宏毅机器学习课程,收获挺多。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值