
LeetCode 按摩师题解题目描述一个按摩师接收预约但是不能接相邻的预约。给定预约时间找到能获得的最长总服务时间。示例输入nums [1,2,3,1]输出4解题思路方法动态规划思路使用动态规划dp[i] 表示考虑前 i 个预约能获得的最长服务时间。dp[i] max(dp[i-1], dp[i-2] nums[i])。复杂度分析时间复杂度O(n)。空间复杂度O(1)。代码实现def massage(nums): if not nums: return 0 if len(nums) 1: return nums[0] prev2 0 prev1 nums[0] for i in range(1, len(nums)): curr max(prev1, prev2 nums[i]) prev2 prev1 prev1 curr return prev1 # 测试 def test_massage(): nums [1, 2, 3, 1] print(massage(nums)) # 输出4 if __name__ __main__: test_massage()总结按摩师是动态规划的典型应用通过维护前两个状态来计算最长服务时间。