找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2090|回复: 1
收起左侧

[Bloomberg] Bloomberg 电面

[复制链接]

10

主题

7

精华

623

积分

超级会员

Rank: 4

积分
623
发表于 4-1-2015 02:27 PM | 显示全部楼层 |阅读模式

亲!马上注册或者登录会查看更多内容!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
问了背景 熟悉的语言,答Java,说可以用Java做题。然后问熟悉什么数据结构,答链表 树 hashmap什么的。。然后就出了俩链表题。。. Q0 f( G+ c- ^  P
" L6 H' I+ ]. b# Q7 Z: l3 E
1 Reversely print a Linked List
- ^9 l6 S- g2 e, g- ?递归做或Stack存下,说思路后,让任意挑一种实现# j7 Y$ J5 @! \6 g6 B5 E9 {
+ P& Y+ Y: V" o+ D
2 Swap Two Nodes in a Linked List, L2 D; ^9 d6 S$ g% x, o
给出要swap的两个nodes的index, 如pos1=1,pos2=3,
  t3 Y& z/ j0 f5 p4 U6 A假设pos1 pos2 都是valid,且pos1< pos2。
2 I4 M1 C6 F1 X0 g) z0 K0 {4 U举例:链表开始时长这样: 0->1->2->3->4->5-null, : W7 b7 y0 H/ t9 T# j! e
swap后变成: 0->3 >2->1->4->5-null& n/ d/ i! G7 L
( n# x) A6 N- z8 X5 i# m

! l( B! p/ u2 ?# }corner case:
# B  g$ g! T; ^& A6 K% @" a(1)表空 || 只有一个node || pos1=pos2: 不用swap, 直接返回* f, ]/ p/ c# p1 z0 E5 ?
(2)pos1=0 : 最开始时加个dummy node
2 c! I1 A* ?9 U7 \1 K! H$ |(3)pos1+1=pos2 : 直接swap这两个相邻的节点 5 {# M0 t. q7 N5 u) X

% h/ B2 P0 j  Q8 p% |& L
/ j2 c( p  l- U  ]一般case:- n; J9 J& k$ J( |8 c
根据pos1和pos2, 遍历链表,找到这俩index所指示的node
. Q0 V: ]( @3 k: S8 m3 {弱弱地用了6个指针,分别指向pos1、pos2 的前面,当前和后面的节点,做swap。。
" w+ P! g& Q/ \
6 K$ e+ u; |* L8 q& J# y) U" y+ }! V$ t' J3 l4 x$ E' N
求解有没有更简洁的做法,或者少用点指针。。
2 G' e9 i' L4 B6 x% G' a1 Z3 b9 d
! U3 q6 [6 ]8 u1 S% |) S$ f面试时做得不好,估计跪了,o(︶︿︶)o ,伤心。。求积分。。/ m6 O; i& V; a6 K8 b9 n, u/ [
3 E* p7 G! @& e3 c

本帖被以下淘专辑推荐:

781

主题

575

精华

5670

积分

顶级版主

Rank: 9Rank: 9Rank: 9

积分
5670

活跃会员热心会员优秀版主

发表于 4-1-2015 03:13 PM | 显示全部楼层
Thanks for your sharing~~~
我们始终相信IT会持续改造甚至创新传统行业,我们始终全面看好咱们的CS专业!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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