t********3 发帖数: 567 | 1 1. 实现pow
2. Reverse Polish notation
{"4", "1", "+", "2", "*"} -> ((4 + 1) * 2) -> 10
{"5", "8", "4", "/", "+"} -> (5 + (8 / 4)) -> 7
两个面试的 ,一个三哥,一个不知道什么国家的,不是美国人。
三哥的口音一如既往的难懂啊 |
w****x 发帖数: 2483 | |
p*****2 发帖数: 21240 | |
v***n 发帖数: 5085 | 4 怎么这么简单。。。
【在 t********3 的大作中提到】 : 1. 实现pow : 2. Reverse Polish notation : {"4", "1", "+", "2", "*"} -> ((4 + 1) * 2) -> 10 : {"5", "8", "4", "/", "+"} -> (5 + (8 / 4)) -> 7 : 两个面试的 ,一个三哥,一个不知道什么国家的,不是美国人。 : 三哥的口音一如既往的难懂啊
|
y*******g 发帖数: 6599 | 5 太难了没区分度 电面简单题挺好的
【在 v***n 的大作中提到】 : 怎么这么简单。。。
|
t********3 发帖数: 567 | 6 估计因为是1 面?
【在 v***n 的大作中提到】 : 怎么这么简单。。。
|
w****x 发帖数: 2483 | 7 得了吧, 一个个的, 看的简单, 面试管那能过这两题的我估计百分比也不大。。。
谁像版上这样天天做题的 |
S****h 发帖数: 115 | 8 pow 是 public double pow(double base, double e); ? 表示没做过,压力很大...
【在 t********3 的大作中提到】 : 1. 实现pow : 2. Reverse Polish notation : {"4", "1", "+", "2", "*"} -> ((4 + 1) * 2) -> 10 : {"5", "8", "4", "/", "+"} -> (5 + (8 / 4)) -> 7 : 两个面试的 ,一个三哥,一个不知道什么国家的,不是美国人。 : 三哥的口音一如既往的难懂啊
|
d**********x 发帖数: 4083 | 9 pow一般问的是 int, int 的,如何logN解决
double的我相信版上一半民工当场做不出,而且也没有意义
【在 S****h 的大作中提到】 : pow 是 public double pow(double base, double e); ? 表示没做过,压力很大...
|
S****h 发帖数: 115 | 10 L三哥貌似很多啊,我也是面了三哥,问了个twoSum
【在 t********3 的大作中提到】 : 1. 实现pow : 2. Reverse Polish notation : {"4", "1", "+", "2", "*"} -> ((4 + 1) * 2) -> 10 : {"5", "8", "4", "/", "+"} -> (5 + (8 / 4)) -> 7 : 两个面试的 ,一个三哥,一个不知道什么国家的,不是美国人。 : 三哥的口音一如既往的难懂啊
|
|
|
t********3 发帖数: 567 | 11 是 (double,int) 的
【在 d**********x 的大作中提到】 : pow一般问的是 int, int 的,如何logN解决 : double的我相信版上一半民工当场做不出,而且也没有意义
|
d**********x 发帖数: 4083 | 12 double, int的和int int的没有区别。。
【在 t********3 的大作中提到】 : 是 (double,int) 的
|
Z*****Z 发帖数: 723 | 13 double咋做?
【在 d**********x 的大作中提到】 : double, int的和int int的没有区别。。
|
S****h 发帖数: 115 | 14 你是马甲?
【在 Z*****Z 的大作中提到】 : double咋做?
|
l*****a 发帖数: 14598 | 15 你处理int那个
double那个就自乘好了
【在 S****h 的大作中提到】 : 你是马甲?
|
d**********x 发帖数: 4083 | 16 底是double幂是int,就1 2 4 8 16拼起来就行了啊。。
【在 Z*****Z 的大作中提到】 : double咋做?
|
Z*****Z 发帖数: 723 | 17 我是说,double double咋做?
【在 d**********x 的大作中提到】 : 底是double幂是int,就1 2 4 8 16拼起来就行了啊。。
|
l*****a 发帖数: 14598 | 18 上面不是说了吗,double double不需要民工会,需要数学家来
另外,你说 2.5的1.234方是什么意思?
【在 Z*****Z 的大作中提到】 : 我是说,double double咋做?
|
Z*****Z 发帖数: 723 | 19 x^y 假设y是有理数,总能写成M/N的形式,M/N是整数,那么x^y ==( x^M )再开N次方呗
举个例子,2.5 ^ 1.234 = 2.5 ^ (1234/1000) = 2.5 ^ 1234 再开1000次方
【在 l*****a 的大作中提到】 : 上面不是说了吗,double double不需要民工会,需要数学家来 : 另外,你说 2.5的1.234方是什么意思?
|
d**********x 发帖数: 4083 | 20 有兴趣就看下glibc的e_powf.c吧。。
反正我以前也许是看懂过,但是很快就忘了。。就是一坨数字倒来倒去的
另外一般机器的fpu里面应该有这玩意,所以没有必要。。
【在 Z*****Z 的大作中提到】 : 我是说,double double咋做?
|
|
|
Z*****Z 发帖数: 723 | 21 你也是?
【在 S****h 的大作中提到】 : 你是马甲?
|
a********r 发帖数: 218 | 22 那位达人能贴个Reverse Polish notation 的C++程序,我是菜鸟一个,想学习一下
【在 t********3 的大作中提到】 : 1. 实现pow : 2. Reverse Polish notation : {"4", "1", "+", "2", "*"} -> ((4 + 1) * 2) -> 10 : {"5", "8", "4", "/", "+"} -> (5 + (8 / 4)) -> 7 : 两个面试的 ,一个三哥,一个不知道什么国家的,不是美国人。 : 三哥的口音一如既往的难懂啊
|
Z*****Z 发帖数: 723 | 23 刚才看了一下牛顿弦切法应该可以,比如求 N ^ 1/1000
令 f(x) = x^1000 - N
f'(x) = 1000x^999
牛顿弦切法就是
x[k+1] = x[k] - f(x[k]) / f'(x[k])
= x[k] - (x[k] ^ 1000 - N) / 1000x[k]^999
= x[k] - x[k]/1000 + N/1000/x[k]^999
选个非零初值然后迭代就行了吧
【在 d**********x 的大作中提到】 : 有兴趣就看下glibc的e_powf.c吧。。 : 反正我以前也许是看懂过,但是很快就忘了。。就是一坨数字倒来倒去的 : 另外一般机器的fpu里面应该有这玩意,所以没有必要。。
|
i***e 发帖数: 452 | 24 第二题啥意思啊 ? 我太弱了, 一点思路都没有啊, 班上大牛给点提示啊!! |
l*****a 发帖数: 14598 | 25 算术表达式转成二叉树的post-order traverse表示
【在 i***e 的大作中提到】 : 第二题啥意思啊 ? 我太弱了, 一点思路都没有啊, 班上大牛给点提示啊!!
|
S****h 发帖数: 115 | 26 第二题用stack
// {"4", "1", "+", "2", "*"} -> ((4 + 1) * 2) -> 10
遇到数字,push
(4, 1|
遇到operator,pop两个operands,计算并将结果push进stack
read "+", pop 1, pop 4, cal 1+4=5, push 5,
(5|
以此类推
push 2
(5, 2|
read "*", pop 2, pop 5, cal 5 * 2 = 10,push 10
最后pop 10
【在 i***e 的大作中提到】 : 第二题啥意思啊 ? 我太弱了, 一点思路都没有啊, 班上大牛给点提示啊!!
|
h**i 发帖数: 219 | 27 Is not using stack simpler? When you see an operator, pop two operands from
the stack, perform the operation and push the result into the stack.
【在 l*****a 的大作中提到】 : 算术表达式转成二叉树的post-order traverse表示
|
i***e 发帖数: 452 | 28 I see, 多谢大牛解释。
【在 l*****a 的大作中提到】 : 算术表达式转成二叉树的post-order traverse表示
|
i***e 发帖数: 452 | 29 多谢解释
【在 S****h 的大作中提到】 : 第二题用stack : // {"4", "1", "+", "2", "*"} -> ((4 + 1) * 2) -> 10 : 遇到数字,push : (4, 1| : 遇到operator,pop两个operands,计算并将结果push进stack : read "+", pop 1, pop 4, cal 1+4=5, push 5, : (5| : 以此类推 : push 2 : (5, 2|
|
c*****l 发帖数: 20 | 30 感觉L的面试官水平很差
问的题面试官自己都没有深入了解 |
|
|
C***U 发帖数: 2406 | 31 第二提没见过。当场写对对我来说很难啊
【在 t********3 的大作中提到】 : 1. 实现pow : 2. Reverse Polish notation : {"4", "1", "+", "2", "*"} -> ((4 + 1) * 2) -> 10 : {"5", "8", "4", "/", "+"} -> (5 + (8 / 4)) -> 7 : 两个面试的 ,一个三哥,一个不知道什么国家的,不是美国人。 : 三哥的口音一如既往的难懂啊
|
l******n 发帖数: 1250 | |
n******n 发帖数: 49 | 33 和我电面的2道题一模一样。它家题库真的是很小。 |
o******e 发帖数: 81 | 34 可不可以用sqrt?double的power可以拆成整数和小数部分。小数部分类似这样:
// Assume 0 < power <= 1
double Power(double value, double power)
{
const double Threshold = 1E-10;
double result = 1;
for (int p = 1; power > Threshold; value = Math.Sqrt(value), p /= 2)
if (power >= p)
{
power -= p;
result *= value;
}
return result;
}
【在 Z*****Z 的大作中提到】 : 我是说,double double咋做?
|
d*******d 发帖数: 2050 | 35 就是这么简单,真正能做好的没几个。
【在 v***n 的大作中提到】 : 怎么这么简单。。。
|