京东物流面试汇总(三)

京东物流面试汇总(三)

1. 算法

  • 单项链表开始结束区间翻转
    • 1,2,3,4,5 start 1 end 3 -> 1,4,3,2,5
  • 写二叉树结构类,二叉树反转,递归非递归
  • 假设你正在爬楼梯。需要 n 阶你才到达楼顶。每次你可以爬 1 或 2 或3 个台阶。你有多少种不同的方法可以爬到楼顶呢? 如输入4 输出7
  • 字符串反转:输入 ABC DEF 输出 DEF ABC(考虑为空 split(" ") 倒序遍历数组 追加到 StringBuilder 不是第一个增加 " ")
  • 给出 n 个不重复的数,随机找出 m 个不重复的整数,要求时间和空间复杂度都是 O(m)(利用随机数和 HashSet (存储随机的下标))
  • 假设你正在爬楼梯。需要 n 阶你才到达楼顶。每次你可以爬 1 或 2 或 3 个台阶。你有多少种不同的方法可以爬到楼顶呢? 如输入 4 输出 7(动态规划,递归)
  • 给任意二叉树的所有结点加 next 指针
  • 设计一个阻塞队列 (生产者消费者模型 容量 Queue<T> queue; int capacity; new ReentrantLock(); lock.newCondition(); lock.newCondition();
  • 单向链表查找中间元素(快慢指针 循环快的指针 快走 2 步 慢指针走 1 步 走完 慢指针就是中间元素)
  • 合并两个链表让两个链表有序(虚拟头结点 遍历两个链表 判断两个链表值谁小就拼接到虚拟节点 判断两个节点谁是空 最后拼接到虚拟节点)
  • 给出一个数组 找出最小的5个数 (topK 最大堆问题 使用java里面的优先级队列 queue.peek() 查看队列头元素 最后使用数组 输出下队列中的元素)
  • 如何用动态规划算法优化京东物流骑手配送路径
posted @ 2025-07-09 16:55  贺艳峰  阅读(26)  评论(0)    收藏  举报