由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 今天竟然把MULTIPLY(大数相乘)写完了,发帖庆祝
相关主题
大整数相乘谁贴个bug free的code这道题怎么解
大牛给个大数(+-*)的面试解答吧如何求一个整数阶乘的各位数字和
贡献一道面试题目:找出在一个数组里面只出现1次的两个数字来发个我的Leetcode的Python答案吧
一道要求常数空间和O(n)时间的排序题发一个Startup的面经 - Affirm
L家phone面,悲剧贴几道老题目
上一道我以前喜欢出的题目吧在整数数组中加运算符号和括号,求max
F面经关于Leetcode
问一道前几天在版上看见的题a problem from leetcode: high efficiency algorithm for combinations problem
相关话题的讨论汇总
话题: integer话题: int话题: list话题: arraylist
进入JobHunting版参与讨论
1 (共1页)
u*****o
发帖数: 1224
1
是写完了,不是写对了,但对我来讲也是质的飞跃。。以前看到这道题就头疼,懒的仔
细去想,今天硬着头皮沉下心,写了一遍。。虽然还是有错,但改了几个地方后也差不
多了。。。
以前觉得这辈子我也写不对这个题了,现在似乎看到曙光了,果真人的潜力是无限的,
只要肯钻,起码和自己比,一定是前进的。。。
想起初中的课文,而山不加增,何苦而不平。。。
嘿嘿,去买冰激凌奖励自己~~大家努力刷题啊!
h******s
发帖数: 86
2
山在增加

【在 u*****o 的大作中提到】
: 是写完了,不是写对了,但对我来讲也是质的飞跃。。以前看到这道题就头疼,懒的仔
: 细去想,今天硬着头皮沉下心,写了一遍。。虽然还是有错,但改了几个地方后也差不
: 多了。。。
: 以前觉得这辈子我也写不对这个题了,现在似乎看到曙光了,果真人的潜力是无限的,
: 只要肯钻,起码和自己比,一定是前进的。。。
: 想起初中的课文,而山不加增,何苦而不平。。。
: 嘿嘿,去买冰激凌奖励自己~~大家努力刷题啊!

s*******s
发帖数: 1031
3
con!! 羡慕,我也开始好好写一下。

【在 u*****o 的大作中提到】
: 是写完了,不是写对了,但对我来讲也是质的飞跃。。以前看到这道题就头疼,懒的仔
: 细去想,今天硬着头皮沉下心,写了一遍。。虽然还是有错,但改了几个地方后也差不
: 多了。。。
: 以前觉得这辈子我也写不对这个题了,现在似乎看到曙光了,果真人的潜力是无限的,
: 只要肯钻,起码和自己比,一定是前进的。。。
: 想起初中的课文,而山不加增,何苦而不平。。。
: 嘿嘿,去买冰激凌奖励自己~~大家努力刷题啊!

s********x
发帖数: 914
4
切磋一下

public static ArrayList multiplyBigInterger(List num1,
List num2) {
if (num1 == null || num1.isEmpty() || num2 == null || num2.isEmpty()
) {
throw new IllegalArgumentException("Invalid input");
}
if (num1.size() < num2.size()) {
return multiplyBigInterger(num2, num1);
}
// num1.size() >= num2.size()
ArrayList result = new ArrayList(num1.size()
+ num2.size());
for (int j = 0; j < num2.size(); j++) {
int c = 0, resultIndex = 0;
for (int i = 0; i < num1.size(); i++) {
resultIndex = i + j;
if (resultIndex >= result.size()) {
result.add(0);
}
int n1 = num1.get(i);
int n2 = num2.get(j);
checkValidSingleDigit(n1);
checkValidSingleDigit(n2);
int v = n1 * n2 + c + result.get(resultIndex);
result.set(resultIndex, v % 10);
c = v / 10;
}
while (c > 0) {
if (++resultIndex < result.size()) {
c += result.get(resultIndex);
result.set(resultIndex, c % 10);
} else {
result.add(c % 10);
}
c /= 10;
}
}
return result;
}
Test:
List n1 = Arrays.asList(9);
List n2 = Arrays.asList(9, 9, 9);
for (int i = n1.size() - 1; i >= 0; i--) {
System.out.print(n1.get(i));
}
System.out.print(" X ");
for (int i = n2.size() - 1; i >= 0; i--) {
System.out.print(n2.get(i));
}
System.out.print(" = ");
ArrayList r = multiplyBigInterger(n1, n2);
for (int i = r.size() - 1; i >= 0; i--) {
System.out.print(r.get(i));
}
c****p
发帖数: 6474
5
一个元素存一位是不是太浪费了。
s********x
发帖数: 914
6
那要优化恐怕得用char or byte

【在 c****p 的大作中提到】
: 一个元素存一位是不是太浪费了。
1 (共1页)
进入JobHunting版参与讨论
相关主题
a problem from leetcode: high efficiency algorithm for combinations problemL家phone面,悲剧
combinations 有没有 iterative的方法阿 ?上一道我以前喜欢出的题目吧
问个递归的问题F面经
讨论下lc最新的那道hard题吧问一道前几天在版上看见的题
大整数相乘谁贴个bug free的code这道题怎么解
大牛给个大数(+-*)的面试解答吧如何求一个整数阶乘的各位数字和
贡献一道面试题目:找出在一个数组里面只出现1次的两个数字来发个我的Leetcode的Python答案吧
一道要求常数空间和O(n)时间的排序题发一个Startup的面经 - Affirm
相关话题的讨论汇总
话题: integer话题: int话题: list话题: arraylist