题目:

一个有名的按摩师会收到源源不断的预约请求,每个预约都可以选择接或不接。在每次预约服务之间要有休息时间,因此她不能接受相邻的预约。给定一个预约请求序列,替按摩师找到最优的预约集合(总预约时间最长),返回总的分钟数。

注意:本题相对原题稍作改动

示例 1:

输入: [1,2,3,1]

输出: 4

解释: 选择 1 号预约和 3 号预约,总时长 = 1 + 3 = 4。

示例 2:

输入: [2,7,9,3,1]

输出: 12

解释: 选择 1 号预约、 3 号预约和 5 号预约,总时长 = 2 + 9 + 1 = 12。

示例 3:

输入: [2,1,4,5,3,1,1,3]

输出: 12

解释: 选择 1 号预约、 3 号预约、 5 号预约和 8 号预约,总时长 = 2 + 4 + 3 + 3 = 12。

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/the-masseuse-lcci

思路

这个题目跟前几天的几乎一模一样。

简单的动态规划问题,公式;

dp[i]=max(dp[i-2]+num[i],dp[i-1])

问题分为最后选择了第i个或者没有选择第i个。

dp[i]是前i个房间里的最优解,若选择了第i个,则答案就是第i个加dp[i-2](i-2)的最优解

代码:

class Solution:
def massage(self, nums):
if len(nums)==0:
return 0
if len(nums) == 1:
return nums[0]
dp={}
dp[0]=nums[0]
dp[1]=max(nums[0],nums[1])
for i in range(2,len(nums)):
dp[i]=max(dp[i-2]+nums[i],dp[i-1])
return dp[len(nums)-1]
a=Solution()
nums=[]
print(a.massage(nums))

官方代码:

class Solution:
def massage(self, nums: List[int]) -> int:
n = len(nums)
if n == 0:
return 0 dp0, dp1 = 0, nums[0]
for i in range(1, n):
tdp0 = max(dp0, dp1) # 计算 dp[i][0]
tdp1 = dp0 + nums[i] # 计算 dp[i][1]
dp0, dp1 = tdp0, tdp1 return max(dp0, dp1)
链接:https://leetcode-cn.com/problems/the-masseuse-lcci/solution/an-mo-shi-by-leetcode-solution/
来源:力扣(LeetCode)

最新文章

  1. Oracle job procedure 存储过程定时任务
  2. UIView的响应链
  3. Python中With的用法
  4. ubuntu 14.04解决gedit中文乱码的问题
  5. 闲扯 Javascript 04 滚动条
  6. uva 10603
  7. UPX 加壳工具:The Ultimate Packer for eXecutables
  8. 【转】TCP、UDP、RTP(RTCP)区别
  9. Web项目发布的更新
  10. 标准I/O的缓冲
  11. [原]Django(1)----Django-setting中的STATIC_URL 和STATIC_ROOT 和STATICFILES_DIRS 的区别
  12. [Java in NetBeans] Lesson 12. Arrays
  13. WPF LinkButton
  14. 自定义cnblogs样式小结
  15. CentOS 7 目录布局变化
  16. chrome 设置是否缓存
  17. 【Codechef】Random Number Generator(多项式除法)
  18. java多态抽象类实例
  19. IBM AppScan 安全漏洞问题修复(.net)
  20. hdu6237 分解质因子

热门文章

  1. XX系统测试总结报告
  2. C++扬帆远航——16(猜数字)
  3. hadoop地址配置、内存配置、守护进程设置、环境设置
  4. Flutter Widgets 之 SnackBar
  5. swoole(2)swoole进程结构
  6. JZOJ 1349. 最大公约数 (Standard IO)
  7. yuchuan_Linux_C 编程之七系统IO函数
  8. day05基本运算符,格式化输出,垃圾回收机制
  9. echarts 图点击事件
  10. 对两个有序数组重新去重合并排序js实现