顺丰笔试
动态规划有一个背包,容量为 5 千克,有 3 个物品,分别是重量为 2 千克、价值为 3 元的物品 A,重量为 3 千克、价值为 4 元的物品 B,重量为 1 千克、价值为 2 元的物品 C。使用动态规划算法计算如何选择物品放入背包,才能使背包中物品的总价值最大。给定一个字符串str,计算最少需要插入多少个字符,才能使str成为回文串。
贪心算法假设有一系列任务,每个任务都有开始时间和结束时间,例如任务 A 的开始时间为 1,结束时间为 3;任务 B 的开始时间为 2,结束时间为 4;任务 C 的开始时间为 3,结束时间为 5。使用贪心算法选择尽可能多的任务,使得这些任务之间没有时间冲突。有一组硬币,面值分别为 1 元、5 角、1 角、5 分、1 分,给定一个金额,如 3 元 7 角 8 分,使用贪心算法计算如何用最少的硬币组合来凑出该金额。
图算法给定一个无向图,使用深度优先搜索(DFS)或广度优先搜索(BFS)算法遍历图中的所有节点,并输出遍历顺序。计算带权图中从一个给定节点到其他所有节点的最短路径,使用 Dijkstra 算法或 Floyd 算法。