面试分享(六).算法相关

算法相关

  • 递归使用中有什么需要注意的地方,递归写法一般可以用什么去替换?
  • 如下图所示:
    image
  • 设计一个发号器,考虑集群和高并发的情况,要求发号器生成的id是递增趋势,通过id可以区分出来是今天生成的id还是昨天生成的id,但是生成的id中不能直接带有日期,要具有一定的混淆功能,白纸写代码
  • 一个二位数组,每个元素都可以往上下左右四个方向走,寻找最长递增路径。如下图所示,最长递增路径即红色字体路径。白纸写代码。
    image
  • 反转链表,要求时间复杂度O(N),空间复杂度O(1)
  • 非递归实现斐波那契数列
  • 这一周股市价格为[2,6,1,4,8],求哪一天买入哪一天卖出,可获得最大收益,最大收益为多少
  • 按照箭头方向查找二叉树
    image
  • 表a b c之间用ID关联,求阴影部分的数据
    image
  • 一个整形无序数组,里面三个数只和等于一个目标值,求这三个数
  • 链表问题
    image
  • 扑克牌问题
    有十张扑克牌,从上面开始抽,抽出一张放桌子上,然后再抽出一张放扑克牌的最下面,这样循环往复的操作,直到手里的牌都没有了。这时,桌子上牌的顺序正好是1 2 3 4 5 6 7 8 9 10。要求写代码求出原顺序
  • 手写大顶堆
  • 手写LRU 算法
  • 字符串相加
    两个数字类型的字符串,直接转int或者double肯定都放不下,然后求这两个数的和,返回值还是字符串,15分钟时间,要求无Bug
  • 寻找目标值位置
    有一个二维数组,数组横向有序,纵向有序,求目标值的位置,10分钟时间
  • 求字符串“efabcbaefehiabcba”中最长的回文数,不去重
  • 反转int类型的值x,不要借用String,只用int 即可。&& 针对该程序,写出其应有的测试用例
  • top K 问题