San Jose各个房价 <1.5m 区域买房总结

一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
E轮2.5亿美元融资
K12教育独角兽一起作业
北京-诚聘人工智能/教育/大数据岗
坐标湾区
Games Startup
招聘游戏开发工程师
游戏初创公司招聘工程师、UIUX Designer和游戏策划
码农求职神器Triplebyte:
不用海投
内推多家公司面试
把贵司招聘信息放这里
查看: 1707|回复: 9
收起左侧

FB店面

[复制链接] |试试Instant~ |关注本帖
lby8833 发表于 2015-3-29 09:11:35 | 显示全部楼层 |阅读模式

2015(1-3月) 码农类General 硕士 全职@Facebook - 猎头 - 技术电面  | Other | 在职跳槽

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?Sign Up 注册获取更多干货

x
Leetcode上那道String Multiplication的类似题。

ericzeze 发表于 2015-3-30 01:53:44 | 显示全部楼层
yuxrose 发表于 2015-3-29 13:16. 1point 3acres 论坛
但我还是不很明白为什么array比string更efficient。。。
我用string写的solution和你的一样,
看到网上 ...

面试官的意思可能是说因为Java String是不可改变的对象,每次对String类型修改的时候都要生成新对象,操作起来更费时间,如果用Array或者StringBuilder来做的话消耗时间更短。
回复 支持 1 反对 0

使用道具 举报

yuxrose 发表于 2015-3-29 10:10:15 | 显示全部楼层
lz请问题目给的两个乘数是存在string里还是存在array里?我记得看过一个面经说这题用array比用string much faster,能分享一下你的想法吗?
回复 支持 反对

使用道具 举报

 楼主| lby8833 发表于 2015-3-29 10:16:47 | 显示全部楼层
yuxrose 发表于 2015-3-29 10:10. Waral 博客有更多文章,
lz请问题目给的两个乘数是存在string里还是存在array里?我记得看过一个面经说这题用array比用string much  ...

这个确实值得讨论一下,我是用的一个int array存每次算出来的数,再mod 10,处理完0之后再返回string,他当时给我是一个generic type,<T> multiply(<T> t1, <T> t2), 我当时就思维惯性用string来代替,后来被面试官纠正讨论为什么用string还是别的data structure之类的,反正communicate的不大好,后来挂掉了- - 总体感觉真的要写得很熟才行,因为时间很短:-(
回复 支持 反对

使用道具 举报

yuxrose 发表于 2015-3-29 13:16:44 | 显示全部楼层
lby8833 发表于 2015-3-29 10:16
这个确实值得讨论一下,我是用的一个int array存每次算出来的数,再mod 10,处理完0之后再返回string,他 ...

但我还是不很明白为什么array比string更efficient。。。
我用string写的solution和你的一样,
看到网上一个用array的这么写的
public static String multiply2(String num1, String num2){
                if(num1 == null || num2 == null || num1.length() == 0 || num2.length() == 0)
                        return null;
. From 1point 3acres bbs
                if(num1.equals("0") || num2.equals("0"))
                        return "0";                       
                int len1 = num1.length();. 一亩-三分-地,独家发布
                int[] N1 = new int[len1];. 1point3acres
                int len2 = num2.length();
                int[] N2 = new int[len2];
                int len3 = len1 + len2;. 1point3acres
                int[] result = new int[len3];
                for(int i = 0; i < num1.length(); i++){
                        N1 = num1.charAt(i) - '0';
                }
                for(int i = 0; i < num2.length(); i++){
                        N2 = num2.charAt(i) - '0';
                }
               
                for(int i = 0; i < len1; i++){
                        for(int j = 0; j < len2; j++){
                                result[i + j + 1] += N1 * N2[j];
                        }
                }
                StringBuilder sb = new StringBuilder();
                for(int k = len1 + len2 - 1; k >= 0; k--){
                        sb.append((char)(result[k] % 10 + '0'));
                        if(k > 0){
                                result[k - 1] += result[k] / 10;
                        }
                }
                int startPos = sb.charAt(sb.length() - 1) == '0' ? 1 : 0;
. 牛人云集,一亩三分地                String s = sb.reverse().substring(startPos, sb.length());. visit 1point3acres for more.
                return s;. 1point 3acres 论坛
        }. more info on 1point3acres

. 一亩-三分-地,独家发布
这个当然更好理解,计算的也更方便,不易出错,但具体到复杂度,和string
并没有区别啊,都是space m + n,  time m * n, array access a 或者是
string.charAt(i)都是O(1)的复杂度。。。不知道为什么一定要纠结用array啊. 一亩-三分-地,独家发布

回复 支持 反对

使用道具 举报

likenisha 发表于 2015-3-31 05:25:01 | 显示全部楼层
请问类似的话,哪里不太一样呢
回复 支持 反对

使用道具 举报

 楼主| lby8833 发表于 2015-3-31 05:29:09 | 显示全部楼层
likenisha 发表于 2015-3-31 05:25
请问类似的话,哪里不太一样呢

. Waral 博客有更多文章,就是signature不一样,没有给定type是string
回复 支持 反对

使用道具 举报

likenisha 发表于 2015-3-31 22:34:35 | 显示全部楼层
lby8833 发表于 2015-3-30 16:29
就是signature不一样,没有给定type是string
. From 1point 3acres bbs
那要转换成String么。。。int 或者 long么
Mobile Apps Category (English)728x90
回复 支持 反对

使用道具 举报

 楼主| lby8833 发表于 2015-3-31 23:19:28 | 显示全部楼层
likenisha 发表于 2015-3-31 22:34. 1point 3acres 论坛
那要转换成String么。。。int 或者 long么
. 1point3acres
我当时就直接说用一些data structure可以用,char array啊,list神马的,可能我也没分析好各种优缺点。对啊,因为他说了,可能是个big integer,但既然给了统一的类型,输入选什么,输出就选什么咯。
回复 支持 反对

使用道具 举报

likenisha 发表于 2015-4-2 07:39:49 | 显示全部楼层
不明白为什么还用数据结构。。。
回复 支持 反对

使用道具 举报

本版积分规则

提醒:发帖可以选择内容隐藏,部分板块支持匿名发帖。请认真读完以下全部说明:

■隐藏内容方法: [hide=200]你想要隐藏的内容比如面经[/hide]
■意思是:用户积分低于200则看不到被隐藏的内容
■可以自行设置积分值,不建议太高(200以上太多人看不到),也不建议太低(那就没必要隐藏了)
■建议只隐藏关键内容,比如具体的面试题目、涉及隐私的信息,大部分内容没必要隐藏。
■微信/QQ/电子邮件等,为防止将来被骚扰甚至人肉,以论坛私信方式发给对方最安全。
■匿名发帖的板块和方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2018-5-26 10:32

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表