先bb几句

好久没写博客,今年感情学业一团糟,去年及其热爱的NLP现在也不得不暂时放弃。
哎 世事难料,九到十月忙着校招,华为一面挂,B站网易携程58同城直接没给机会(笔试稀碎), 其他大厂没投,现在还剩最后同程艺龙(苏州)一家22号面试。
10月初自己好好考虑了一下,主要因为我走了不少弯路,没有系统的去学习计算机基础课程,将最好的大二大三的时光用在了过于上层的AI,机器学习领域,导致秋招季算法岗没有资格投递,基础开发岗自己又基础不牢,导致笔试成绩可以说是稀碎,面试也是稀碎。
迄今为止 人生大写的失败 哈哈

题目:

现在很流行打卡,每到一个景点都会进行打卡发朋友圈,有这样一个任务;每个城市有1-9个景点需要打卡,每次发朋友圈最多只能发9个打卡景点,一个景点打一次卡,并且一个城市的打卡景点必须在一次发表中展现,所有景点必须全部打卡。一次发表可以包括多个城市的景点。给出一些城市的景点数,计算至少需要发多少次朋友圈。
===========================================================================================================
[1,1,2,3,4,5,6,9] 共计8个城市,每个城市对应需要打卡的景点数
最少需要发4次朋友圈。

思路

看到的第一秒觉得绝壁是回溯(毕竟是求数组排列组合这一块的),但是因为严蔚敏版/leetcode的经典回溯看多了,一时间做不出来
看:

但是难在 终止条件?但是某一次打卡数量不确定,打多少个城市也不确定
不确定的因素太多 所以 要用贪心的思想
1 打卡数量不确定:直接从最大打卡数量遍历到0(从最大开始必定能保证最终的打卡数是最小的)
2 多少城市不确定:不设置此限制条件即无所谓

def Card_Solve(landspaces, card_nums):''':param landspaces: 景点数组:param card_nums: 每天最多打卡数:return:'''visited = [0 for _ in range(len(landspaces))]result = []length = len(visited)solve(landspaces, length, card_nums, visited, result)return resultdef solve(landspaces, length, card_nums, visited, result):''':param landspaces::param length: 输入数组的长度:param card_nums: 此轮最多打卡数量:param visited: 字面意思:param result: 结果:return:'''if card_nums == 0: #还需打卡数已经为0,结束returnif sum(visited) == length-1: #还剩一个城市,直接放入resultfor i in range(length):if visited[i] == 0:result.append([landspaces[i]])breakreturnsumx = []footprint = []flag = 0for i in range(length-1, -1, -1):if visited[i] == 0 and (sum(sumx)+landspaces[i] <= card_nums):sumx.append(landspaces[i])footprint.append(i)if sum(sumx) == card_nums:result.append(sumx)flag = 1breakif flag == 1: # 若此次card_nums成功 则根据footprint更新visitedfor i in footprint:visited[i] = 1solve(landspaces, length, card_nums, visited, result) # 重要如果此次成功,那么以相同card_nums再继续遍历else:solve(landspaces, length, card_nums - 1, visited, result)if __name__ == '__main__':lands = [[1, 1, 2, 3, 4, 5, 6, 9], [1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [2, 2, 2, 2, 2, 2, 2, 7]]for i in lands:result = Card_Solve(i, 9)print("最少打卡数:{},\t 详细描述:{}".format(len(result), result))

2020-10-13携程招聘算法题相关推荐

  1. 网易2019实习生招聘算法题(一)

    网易2019实习生招聘算法题(一) 题目 为了找到自己满意的工作,牛牛收集了每种工作的难度和报酬. 牛牛选工作的标准是在难度不超过自身能力值的情况下,牛牛选择报酬最高的工作. 牛牛的小伙伴太多了,于是 ...

  2. 搜狗2020秋招笔试的一道算法题

    搜狗2020秋招的一道算法题 有A,B,C三种样品,凑齐三个样品各一个就可以领取一个奖品.任意两个样品可兑换另一种样品,如AA可兑换一个B或一个C,AB可兑换一个C.输入ABC,问最多可以领取多少奖品 ...

  3. 携程测试编程题:客户下单的时候系统会发放一个优惠券码,用户在前端界面看到的展现形式如下

    今天大四第一节课,下午去上了软件测试的课程,中午乘机在微信读书多看了看关于软件测试的书.下午上课,一边在牛客刷题,一边听讲,状态蛮好的.一个戴眼镜的女老师,讲的还有点意思. 今天新买的古琴也到了,下午 ...

  4. 2017 ACM ICPC Asia Shenyang Regional Contest 题解(10 / 13)【每日亿题2 / 16】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A.(2017 ICPC shenyang I)Little Boxes B.(2017 ICP ...

  5. 2021华为校园招聘算法题

    题目描述 到香港旅游,到香港旅游,最后一站决定去迪士尼乐园打卡,因为返程机票已经订好,所以我们必须在剩余可游玩时间t分钟内完成游玩,才能不耽误行程,请你为我们设计一条最佳游玩线路,选择规则如下: 1. ...

  6. 2017百度实习生招聘算法题

    题目一:[编程题] 单词接龙 拉姆刚开始学习英文单词,对单词排序很感兴趣. 如果给拉姆一组单词,他能够迅速确定是否可以将这些单词排列在一个列表中,使得该列表中任何单词的首字母与前一单词的为字母相同. ...

  7. 滴滴-2019+快手2020(A)-校园招聘算法工程师笔试题

    在什么情况需要对特征使用归一化处理? 要解决这个问题首先要看归一化的作用: 1.归一化可以加快梯度下降法求解最优解的速度. 当特征之间的数值变化范围相差太大时,会使得收敛路径呈Z字型,导致收敛太慢,或 ...

  8. 带信号灯的最短路dijkstra问题(阿里巴巴2018校园招聘算法题)

    题目描述 现在城市有N个路口,每个路口有自己的编号,从0到N-1,每个路口还有自己的交通控制信号,例如0,3表示0号路口的交通信号每3个时刻变化一次,即0到3时刻0号路口允许通过,3到6时刻不允许通过 ...

  9. [2020.10.30NOIP模拟赛]字符串水题【SA,树状数组】

    正题 题目大意 一个字符串SSS. 若干个询问,每次询问一个串TTT和l,rl,rl,r.询问有多少个TTT和SSS的公共子串满足和为[l,r][l,r][l,r] 解题思路 考虑枚举子串左端,那么右 ...

  10. 阿里巴巴2014校园招聘算法题

    题目:两个较长的单向链表a和b,为了找出节点node满足node in a 并且node in b.请设计空间使用尽量小的算法(用c/c++,java 或者伪代码) 思路:我们定义节点的距离为节点到链 ...

最新文章

  1. Sql 中取小数点后面两位小数.
  2. SSE3 和 SSSE3 Intrinsics各函数介绍
  3. c++计算-eigen(1)
  4. upc组队赛15 Supreme Number【打表】
  5. .Net中的RealProxy实现AOP
  6. MATLAB----数据拟合
  7. 关于浏览器被hao123劫持
  8. 使用css实现水珠/水滴效果
  9. 如何配置crontab每天早上6点和7点执行脚本
  10. 美国研究生统计学专业申请及就业情况浅析
  11. 适合初学者的java学习网站(1)
  12. 《数据结构与算法》(十四)- 图的应用:最短路径
  13. 怎样拒绝公司的offer, 才显得不卑不亢
  14. java 矢量_[Java教程]矢量图标的使用
  15. 修改el-table表格单元格边框颜色
  16. 数据纳入生产要素,Datablau政府数据模型管控解决方案助力政府数据开放
  17. 火柴棒搭成的几何世界
  18. 使用freemarker模板导出word文档
  19. 移动应用必定不会长久
  20. html能控制佳能相机吗,佳能EOS R可选镜头多吗 是否支持佳能单反镜头

热门文章

  1. WINDOWS SERVER 2003禁用U盘
  2. 内核相关资源 开源/文档/社区/信息资源 1 http://www.kernel.org Linux...
  3. antd权限管理_Antd Pro的权限组件
  4. 推荐3个开源的快速开发平台,前后端都有,项目经验又有着落了!
  5. 十个Win10使用小技巧,看看你知道哪些?
  6. 智能人物画像综合分析系统——Day16
  7. lnmp 一键安装包 运行laravel 该网页无法正常运行
  8. 算法Big O Notation
  9. FFmpeg学习(三)-- libavutil 代码组成
  10. 基于微信小程序开发的在线答题系统