京东物流面试汇总(三)
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)
评论()
收藏
举报