解题思路:时间复杂度O( m a x ( l e n 1 , l e n 2 ) max(len1,len2) max(len1,len2)),len1和len2为两个正整数的长度,空间复杂度O( 1 1 1),java的空间复杂度为O( n n n),因为java的字符串底层的字符数组是final修饰的常量,无法修改,只能使用StringBuffer或StringBuilder等容器
采取低位相加逢十进一法
每次取低位两个数相加,如果结果大于十,就进1
用一个变量保存进位信息。
代码
classSolution{publicStringaddStrings(String num1,String num2){int m = num1.length(), n = num2.length();//两个加数int[] ans =newint[m+n+1];//保存最终相加结果int k = m+n, i = m-1, j = n-1;//k是ans的下标,i是num1的下标,j是num2的下标,从低位开始逢十进一int add =0;//进位while(i >=0|| j >=0|| add !=0){//如果还有数可加int d1 = i >=0? num1.charAt(i)-'0':0;//如果有加数1,就获取,否则为0int d2 = j >=0? num2.charAt(j)-'0':0;//有加数2就获取,否则为0int sum = d1+d2+add;//加数1+加数2+进位ans[k--]= sum %10;//将数字取余10的结果放到ans的后面add = sum /10;//将进位信息提取出来i--;//下一个数j--;//下一个数}StringBuilder res =newStringBuilder();//转成字符串for(k = k+1;k<ans.length;k++) res.append(ans[k]);return res.length()>=1? res.toString():"0";//返回结果}}
文献速递:深度学习胰腺癌诊断--深度学习算法用于从疾病轨迹预测胰腺癌风险
麦田医学 美好事物中转站 2024-04-02 14:36 Title
题目 A deep learning algorithm to predict risk of
pancreatic cancer from disease trajectories
深度学习算法用于从疾病轨迹预测…