珠江风光带最近算法面试 ( 20200814 ) : 怎么写错?

1, 最大栈

答案: 伴随栈法,

还可以给每个元素,添加一个伴随属性,记录最大值

我的错误想法:

1, 维持最大值,那使用优先队列吧

2, 相对给每个元素,记录最大值

我打算使用,hash map, 记录每个元素对应的最大值

  • a, 如果栈里面的元素,都是独特的,简单的 KV 就可以记录,每个元素对应的最大值
  • b, 如果栈里面的元素,可以存在重复的,

元素的值,对应一张表

这张表,对应索引值,和最大值

进栈和出栈,都要维护这张表


2, 反转单链表

( 还没问我,反转双向链表 )

我觉得的要点: 保存指针引用,修改 node 的 next 指针的指向


3, 二分查找

我觉得的疏漏点: left 边界 + 1, right 边界 - 1


4, 青蛙跳格子

答案: 斐波那契数列

我的失误:

a1 = 1

a2 = 2

{ A, 1 + 1 ;
B, 2 }

  • a,第一次失误

a3 = a1 * 2 + a2

a2 到 a3, 只有一种方法

a1 到 a2, 有 2 种方法 , 那就 X 2

  • b. 第 2 次失误

a3 = a1 + 2 + a2

a2 到 a3, 只有一种方法

a1 到 a2, 有 2 种方法 , 那就 + 2



经验:

  • 技术面试中,跟面试官,聊闲话,没用的
  • 技术面试中,写的失误算法,会存档的

面试官不在意,我就在那里,慢慢写用例去跑

你可能感兴趣的:(ios)