1、基于动态规划思想,实现算法,步骤如下:1. 创建一个动态规划数组 dp,其长度等于预约列表数组 nums 的长度;2. dp[i] 代表包含 nums[i] 的预约序列的最大值;3. 根据不相邻的规则,可推断状态转换方程为 :dp[i] = nums[i] + max(dp[i-2], dp[i-3]) , 基于这个方程实现算法。
2、编写本地测试主方法。
3、运行本地测试主方法,观察控制台输出,符合预期,本地测试通过。
4、平台提交算法,测试通过。
5、算法复杂度总结:算法需要遍历一遍预约列表数组,因此时间复杂度为 O(n),n即预约列表数组的长度;需要借助一个动态规划数组辅助运算,即空间复杂度也为 O(n)。