力扣算法刷题Day34|贪心:K次取反后最大化的数组和 加油站 分发糖果

news/2024/12/13 2:38:29/

力扣题目:#1005.K次取反后最大化的数组和 

刷题时长:10min

解题方法:贪心

复杂度分析

  • 时间O(n)
  • 空间O(1)

问题总结

本题收获

  • 贪心思路:两次贪心
    • 在包含正负无序的整数数组中,如何转变K次正负,让数组和达到最大
      • 局部最优:让绝对值大的负数变为正数,当前数值达到最大
      • 整体最优:整个数组和达到最大
    • 有序正整数序列,如何转变K次正负,让数组和达到最大
      • 局部最优:只找数值最小的正整数进行反转,当前数值和可以达到最大
      • 全局最优:整个数组和达到最大
  • Python语法:用lambda表达式按绝对值降序排序 nums.sort(key=lambda x=abs(x), reverse=True)

力扣题目:#134. 加油站 

刷题时长:参考答案后15min

解题方法:贪心

复杂度分析

  • 时间O(n)
  • 空间O(1)

问题总结

  • 因为从index0开始跑起,答案初始化的值应为 0

本题收获

  • 贪心思路
    • 局部最优:当前累加rest[i]的和curSum一旦小于0,起始位置至少要是i+1,因为从i之前开始一定不行
    • 全局最优:找到可以跑一圈的起始位置

力扣题目:#135. 分发糖果 

刷题时长:参考答案后15min

解题方法:贪心

复杂度分析

  • 时间O(n)
  • 空间O(n)

问题总结

  • candy数量应基于被比较的candy数量上+1,而非自己原本的candy数量上+1
  • 第二遍倒序比较时,candy被赋的值应在原有逻辑上再与当前值比较后,选大的值
  • Python语法:数组中倒叙遍历应为 range(n, -1, -1)

本题收获

  • 贪心思路:确定一边之后,再确定另一边,例如比较每一个孩子的左边,然后再比较右边,如果两边一起考虑一定会顾此失彼
    • 从左到右遍历,只比较右边孩子评分比左边大的情况
      • 局部最优:只要右边评分比左边大,右边的孩子就多一个糖果
      • 全局最优:相邻的孩子中,评分高的右孩子获得比左边孩子更多的糖果
    • 从右到左遍历,只比较左边孩子评分比右边大的情况
      • 局部最优:取candyVec[i + 1] + 1 和 candyVec[i] 最大的糖果数量,保证第i个小孩的糖果数量既大于左边的也大于右边的
      • 全局最优:相邻的孩子中,评分高的孩子获得更多的糖果


http://www.ppmy.cn/news/476917.html

相关文章

Android 需要学习的UI框架

Android需要了解学习的UI框架等 UI Awesome-MaterialDesign - MaterialDesignCenter改名为Awesome-MaterialDesign,优化了布局,新增了不少库。awesome-android-ui - ui库,非常多的ui及特效。ChipsLibrary - 在Android EditText中实现打Tag功…

智造微博

一 凌晨4点。刚刚维护完服务器的我从理想国大厦走出来,转过身却发现,在这个距离,东半球最好的手机连我们办公室的灯都拍不清。 『 这个世界,最可怕的就是比你聪明的人比你努力。 』 配上这不知啥时候记住的小清新文字,…

2021哪款蓝牙耳机好?音质、颜值顶尖的五款优秀蓝牙耳机推荐

对比有线耳机,TWS真无线蓝牙耳机已成为现代人生活中必不可少的数码单品,随着技术的成熟与消费者对产品需求的提升,他们也开始注重TWS真无线蓝牙耳机究竟能为自己带来多少怦然心动的创新体验。 这个市场看似百花齐放,另一面却也鱼…

实用​Android开源项目及库​

Android开源项目及库。 github排名 https://github.com/trending,github搜索:https://github.com/search 目录 UI UI卫星菜单节选器下拉刷新模糊效果HUD与Toast进度条UI其它动画网络相关响应式编程地图数据库图像浏览及处理视频音频处理测试及调试动态更新热更新消…

永不抵达的列车

分享到... 复制网址 邮件 QQ空间 新浪微博 MSN 腾讯微博 人人网 开心网 网易微博 搜狐微博 朋友网 淘江湖 百度搜藏 豆瓣 一键分享 查看更多(112) 这是什么工具? JiaThis 12版:冰点特稿 上一版 新闻排行榜 热点新闻 中青在线版权与免责声明:    在接受本网…

Android 开源项目及库汇总

UI Awesome-MaterialDesign – MaterialDesignCenter改名为Awesome-MaterialDesign,优化了布局,新增了不少库。awesome-android-ui – ui库,非常多的ui及特效。ChipsLibrary – 在Android EditText中实现打Tag功能。bitmapMesh – 拉窗帘效果…

天堂里有没有车来车往

公元2011年7月23日,应该是永远让中国铭记的日子。D3115动车和D301追尾相撞,让多少家庭支离破碎,有人出离愤怒,有人悲伤流泪。看看这个,还不满三岁的孩子-项炜伊,在那个瞬间失去爱她的、疼她的爸爸、妈妈。 …

第十四章 json模块

1. json模块介绍 Python 中的json 模块提供了对JSON 的支持,用于将JSON 格式字符串转换为Python 对象。首先需要了解一下什么是JSON。 什么是JSON JSON 是基于JavaScript 语言的轻量级的数据交换格式,是JavaScript 对象的表示法(JavaScrip…