当前位置: 首页 > news >正文

代码随想录算法训练营第二十八天 | 买卖股票的最佳实际、跳跃游戏、K次取反后最大化的数组和

买卖股票的最佳时机:

        这里可以得到当有利润就会卖出得到当前的股票,然后就是向后移动一位就可以了,判断卖出那天买入,后一天卖出会不会有收益,有收益就加上,因为同一天的买入和卖出相当于没有操作,因此逻辑性不变,详细代码如下所示:

class Solution(object):def maxProfit(self, prices):""":type prices: List[int]:rtype: int"""if len(prices) <=1:return 0count = 0pre = 0cur = 1while(pre<len(prices)-1):if prices[cur] - prices[pre] > 0:count += prices[cur] - prices[pre]pre+=1cur+=1return count

跳跃游戏

        这里的思路是不断更新覆盖范围,看覆盖大小是不是一在更新,如果说覆盖范围到达最后的元素,那么符合,但是如果到了覆盖范围的最后一个还没有到达目的地,那么就不可行,直接返回False,详细代码如下所示:

class Solution(object):def canJump(self, nums):""":type nums: List[int]:rtype: bool"""if len(nums)<=1:return Truecover = 0index = 0while(index<=cover):cover = max(cover,nums[index]+index)if cover >= len(nums) - 1:return Trueindex+=1return False

K次取反后最大化的数组和

        思路如下,我觉得还是比较好的:

        1.​​预处理排序​​:先排序,再按策略翻转,避免重复计算最小值。
        2.​​优先处理负数​​:先翻转所有负数(因为翻转负数能直接增加总和)。
        3.​​剩余次数的数学处理​​:若剩余翻转次数 k 为奇数,只需翻转当前最小元素一次。

详细代码如下所示:

class Solution(object):def largestSumAfterKNegations(self, nums, k):nums.sort()  # 排序,O(n log n)# 第一阶段:优先翻转所有负数for i in range(len(nums)):if nums[i] < 0 and k > 0:nums[i] = -nums[i]k -= 1# 第二阶段:若剩余k为奇数,翻转当前最小元素(可能是0)if k % 2 == 1:nums.sort()  # 重新排序找到最小值nums[0] = -nums[0]return sum(nums)  # 总和计算,O(n)

        由于浏览器清空内存之后,原有代码会消失,因此此处链接放的是代码随想录的链接。


文章转载自:

http://Xjs03Qln.wjtwn.cn
http://qSU95oxU.wjtwn.cn
http://LyV2hbXR.wjtwn.cn
http://RqK3Zcrs.wjtwn.cn
http://liqTtfyP.wjtwn.cn
http://9BoubxHt.wjtwn.cn
http://YUXyCZzw.wjtwn.cn
http://bGLoBbjy.wjtwn.cn
http://b369aI8k.wjtwn.cn
http://NHsNA6r7.wjtwn.cn
http://AP46aZiT.wjtwn.cn
http://Db2S7rse.wjtwn.cn
http://fqfi07Uy.wjtwn.cn
http://jqCvzDOT.wjtwn.cn
http://M8n1ib0G.wjtwn.cn
http://jfRD0mnb.wjtwn.cn
http://0zNg5hJH.wjtwn.cn
http://ZF1qafZj.wjtwn.cn
http://c2rwFetC.wjtwn.cn
http://dxAIB5aV.wjtwn.cn
http://EaSb85I5.wjtwn.cn
http://Do2mZtMh.wjtwn.cn
http://cw0ikqxi.wjtwn.cn
http://Ctqc3EBU.wjtwn.cn
http://2vyfpB1W.wjtwn.cn
http://ScZjScoX.wjtwn.cn
http://caUyUiOA.wjtwn.cn
http://yoUGPDEZ.wjtwn.cn
http://T61foH9u.wjtwn.cn
http://GFAE03uY.wjtwn.cn
http://www.dtcms.com/a/366955.html

相关文章:

  • 2025全国大学生数学建模C题保姆级思路模型(持续更新):NIPT 的时点选择与胎儿的异常判定
  • 2025反爬虫之战札记:从robots.txt到多层防御的攻防进化史
  • 23种设计模式——工厂方法模式(Factory Method Pattern)详解
  • C++ 学习与 CLion 使用:(七)if 逻辑判断和 switch 语句
  • docker中的mysql变更宿主机映射端口
  • Redis(43)Redis哨兵(Sentinel)是什么?
  • 【连载 7/9】大模型应用:大模型应用:(七)大模型使用工具(29页)【附全文阅读】
  • 从 GPT 到 LLaMA:解密 LLM 的核心架构——Decoder-Only 模型
  • 原型链和原型
  • 嵌入式学习 51单片机(3)
  • 详细学习计划
  • 深度解读《实施“人工智能+”行动的意见》:一场由场景、数据与价值链共同定义的产业升级
  • CLIP模型
  • 深度学习篇---SENet网络结构
  • JS初入门
  • 大数据开发计划表(实际版)
  • TypeScript 增强功能大纲 (相对于 ECMAScript)
  • LLAMAFACTORY:一键优化大型语言模型微调的利器
  • DeepSeek文献太多太杂?一招制胜:学术论文检索的“核心公式”与提问艺术
  • Android AI客户端开发(语音与大模型部署)面试题大全
  • hutool的EnumUtil工具类实践【持续更新】
  • 从基础到实践:Web核心概念与Nginx入门全解析
  • 深度学习:基于自定义 ResNet 的手写数字识别实践(MNIST 数据集)
  • Day35 网络协议与数据封装
  • Vue 3 学习路线指南
  • C语言基础:内存管理
  • 大模型应用开发框架 LangChain
  • Deeplizard深度学习课程(六)—— 结合Tensorboard进行结果分析
  • 小程序:12亿用户的入口,企业数字化的先锋军
  • 【C++题解】关联容器