每日一题20201130(面试题 17.16. 按摩师)

简介: 面试题 17.16. 按摩师

面试题 17.16. 按摩师


13.jpg

思路



典型的动态规划题目,存在多个子问题。这题与打家劫舍一模一样
这边我们设f(n)为接纳前N个客户的时长, a为预约数组
当n = 0的时候,显然f(n) = 0
当n = 1的时候,显然f(n) = a[n]
当n >= 2的时候,f(n) = max(f(n-2) + a[n], f(n-1))
分2种情况,接纳第n个客户的话,那么就不能接相邻的客户a[n-1]了,所以总数为f(n-2) + a[n]
如果不接纳第n个客户,那么总数就和f(n-1)一样了。我们是为了求最大的解,所以要取2者的最大值。


// 这不就是打家劫舍吗?
func massage(nums []int) int {
    // 假设她不接第n个人
    // n == 1 f(n) = a[n]
    // n == 2 f(n) = max(a[n], a[n-1])
    // f(n) = max(f(n-1), f(n-2)+a[n])
    if len(nums) == 0 {
        return 0
    }
    first, second := 0, nums[0]
    for i:=1;i<len(nums);i++ {
        first, second = second, max(first+nums[i], second)
    }
    return second
}
func max(a, b int) int {
    if a > b {
        return a
    }
    return b
}

15.jpg

image-20201130194020286


class Solution:
    def massage(self, nums: List[int]) -> int:
        if len(nums) == 0:
            return 0
        first, second = 0, nums[0]
        for n in nums[1:]:
            first, second = second, max(first+n, second)
        return second

16.jpg

image-20201130194844069



相关文章
|
10月前
|
存储
Leecode 面试题 17.16. 按摩师
Leecode 面试题 17.16. 按摩师
41 0
|
29天前
|
Java 程序员
java线程池讲解面试
java线程池讲解面试
52 1
|
2月前
|
存储 关系型数据库 MySQL
2024年Java秋招面试必看的 | MySQL调优面试题
随着系统用户量的不断增加,MySQL 索引的重要性不言而喻,对于后端工程师,只有在了解索引及其优化的规则,并应用于实际工作中后,才能不断的提升系统性能,开发出高性能、高并发和高可用的系统。 今天小编首先会跟大家分享一下MySQL 索引中的各种概念,然后介绍优化索引的若干条规则,最后利用这些规则,针对面试中常考的知识点,做详细的实例分析。
251 0
2024年Java秋招面试必看的 | MySQL调优面试题
|
2月前
|
存储 算法 Java
铁子,你还记得这些吗----Java基础【拓展面试常问题型】
铁子,你还记得这些吗----Java基础【拓展面试常问题型】
46 1
|
2月前
|
NoSQL Java 关系型数据库
凭借Java开发进阶面试秘籍(核心版)逆流而上
最近参加了面试或者身边有朋友在面试的兄弟有没有发现,现在的面试不仅会问八股文,还会考察框架、项目实战、算法数据结构等等,需要准备的越来越多。 其实面试的时候,并不是要求你所有的知识点都会,而是关键的问题答到点子上!这份《Java 开发进阶面试秘籍(核心版)》由 P8 面试官整体把控,目前已经更新了 30 万字! 资料中涵盖了一线大厂、中小厂面试真题,毕竟真题都是技术领域最经典的基础知识和经验沉淀的汇总,非常有必要学习掌握!双重 buff 叠加,offer 接到手软~ 点击此处取,这可能是你到目前为止领取的最具含金量的一份资料! 整套资料涵盖:Spring、Spring
|
2月前
|
存储 缓存 Java
面试官:什么是Java内存模型?
面试官:什么是Java内存模型?
112 0
面试官:什么是Java内存模型?
|
1月前
|
消息中间件 NoSQL 网络协议
Java面试知识点复习​_kaic
Java面试知识点复习​_kaic
|
3天前
|
Java 调度
Java面试必考题之线程的生命周期,结合源码,透彻讲解!
Java面试必考题之线程的生命周期,结合源码,透彻讲解!
29 1
|
3天前
|
设计模式 搜索推荐 Java
面试官不按套路出牌,上来就让聊一聊Java中的迭代器(Iterator ),夺命连环问,怎么办?
面试官不按套路出牌,上来就让聊一聊Java中的迭代器(Iterator ),夺命连环问,怎么办?
12 0
|
18天前
|
Java 关系型数据库 MySQL
大厂面试题详解:Java抽象类与接口的概念及区别
字节跳动大厂面试题详解:Java抽象类与接口的概念及区别
40 0