【贪心算法】专题练习二

在这里插入图片描述

欢迎来到Cefler的博客😁
🕌博客主页:折纸花满衣
🏠个人专栏:题目解析
🌎推荐文章:【LeetCode】winter vacation training

在这里插入图片描述


目录

  • 👉🏻买卖股票的最佳时机
  • 👉🏻买卖股票的最佳时机II

👉🏻买卖股票的最佳时机

原题链接:买卖股票的最佳时机

mycode:

class Solution {
public:int maxProfit(vector<int>& prices) {//贪心思路:低买高卖int min = INT_MAX,max = INT_MIN;int ret = 0;for(int i = 0;i<prices.size();i++){if(prices[i]<min) {min = prices[i];max = min;//卖出的时间必须大于等于买入时间}if(prices[i]>max) max = prices[i];if(max-min>ret) ret = max-min;//ret为最大利润}return ret;}
};

👉🏻买卖股票的最佳时机II

原题链接:买卖股票的最佳时机II

mycode:

class Solution {
public:int maxProfit(vector<int>& prices) {int min = INT_MAX, max = INT_MIN;int sum = 0;for (int i = 0; i < prices.size(); i++){if (prices[i] < min){min = prices[i];max = min;//卖出的时间必须大于等于买入时间}if (prices[i] > max) max = prices[i];sum += (max - min);if (max - min >0 )//必须要真的有利润获得{//min = INT_MAX, max = INT_MIN;//执行完买入卖出的操作后就重新恢复默认值进行重新准备买入卖出min = max = prices[i];//无论怎么样,买入卖出完后且获得利润,当前股票也要先入手//因为现在不先入手,下一次循环就要错过这天股票的买入}}return sum;
}
};

优化代码:

class Solution {
public:int maxProfit(vector<int>& prices) {int sum = 0;for(int i = 1;i<prices.size();i++){if(prices[i]>prices[i-1]) sum+= prices[i] - prices[i-1];}return sum;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/728942.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

吴恩达深度学习笔记:神经网络的编程基础2.1-2.3

目录 第一门课&#xff1a;神经网络和深度学习 (Neural Networks and Deep Learning)第二周&#xff1a;神经网络的编程基础 (Basics of Neural Network programming)2.1 二分类(Binary Classification)2.2 逻辑回归(Logistic Regression) 第一门课&#xff1a;神经网络和深度学…

【机器学习】详解正则化思想

我们的生活当中真正有意义或者有价值的部分可以概括为两句话&#xff1a;一句话是&#xff1a;弄清楚某个东西是怎么一回事&#xff0c;另一句话是&#xff0c;弄清楚某个东西是怎么一回事。头一句话&#xff0c;我们弄清楚的那个东西对于我们而言是未知的&#xff0c;但是已经…

【数据结构】二、线性表:4.循环链表的定义及其基本操作(循环单链表,循环双链表的初始化、判空、判断头结点、尾结点、插入、删除)

文章目录 4.循环链表4.1循环单链表4.1.1初始化4.1.2判断单链表是否为空4.1.3判断p结点是否为循环单链表的表尾结点 4.2循环双链表4.2.1初始化4.2.2判断循环链表是否为空4.2.3判断结点p是否为循环双链表的表尾结点4.2.4双链表的插入4.2.5双链表的删除 4.循环链表 4.1循环单链表…

Android自定义横向滑动菜单的实现

本文讲述了Android自定义横向滑动菜单的实现。分享给大家供大家参考&#xff0c;具体如下&#xff1a; 前言 开发安卓过程中&#xff0c;经常会用到标题栏的样式&#xff0c;有时候传统方式不能满足开发者的需要&#xff0c;这时候就需要自定义控件来实现。&#xff08;注意&…

ubuntu开机提示:F2=setup,F12=Boot Menu

开机提示:F2setup,F12Boot Menu-ZOL问答 这应该是没有找到系统启动文件&#xff0c;导致让你选择setup&#xff08;安装系统&#xff09;和BOOT MENU&#xff08;选择启动位置&#xff09;。 可能是硬盘没有接稳妥&#xff0c;也可能是系统文件丢失&#xff01; 建议重装一下系…

Mac版2024 CleanMyMac X 4.14.6 核心功能详解以及永久下载和激活入口

CleanMyMac 是 macOS 上久负盛名的系统清理工具&#xff0c;2018 年&#xff0c;里程碑式版本 CleanMyMac X 正式发布。不仅仅是命名上的变化&#xff0c;焕然一新的 UI、流畅的动画也让它显得更加精致。新增的系统优化、软件更新等功能&#xff0c;使得在日常使用 macOS 时有了…

短视频矩阵系统----矩阵系统源码搭建(技术门槛?)

短视频矩阵是什么意思&#xff1f;短视频矩阵的含义可以理解为全方位的短视频账号&#xff0c;通过不同的账号实现全方位的品牌展示。实际上是指一个短视频账号&#xff0c;通过不同的链接实现品牌展示&#xff0c;在不同的粉丝流量账号中互相转发同一个品牌&#xff0c;在主账…

Angular 项目的架构设计

Angular 项目的架构设计可以考虑以下几个方面&#xff1a; 模块划分&#xff1a;根据功能将项目划分为多个模块&#xff0c;每个模块负责特定的功能或业务逻辑。组件设计&#xff1a;使用 Angular 的组件化思想&#xff0c;将页面拆分成多个可复用的组件&#xff0c;提高代码的…

为什么电容器放电电阻器现在被强制要求作为基本安全装置

在电子产品中&#xff0c;电容器放电电阻器或泄放电阻器是与高压电源电路的输出并联的电阻器&#xff0c;其明确目的是释放存储在电源滤波电容器中的剩余电荷。 例如&#xff0c;开关模式电源使用桥式整流器将交流市电转换为 320V&#xff08;市电电压为 220/240V&#xff09;或…

题目 1917: 蓝桥杯-快乐司机

题目描述: "嘟嘟嘟嘟嘟嘟 喇叭响 我是汽车小司机 我是小司机 我为祖国运输忙 运输忙" 这是儿歌“快乐的小司机”。话说现在当司机光有红心不行&#xff0c;还要多拉快跑。多拉不是超载&#xff0c;是要让所载货物价值最大&#xff0c;特别是在当前油价日新月异的时候…

【Python学习篇】Python基础入门学习——你好Python(一)

个人名片&#xff1a; &#x1f981;作者简介&#xff1a;学生 &#x1f42f;个人主页&#xff1a;妄北y &#x1f427;个人QQ&#xff1a;2061314755 &#x1f43b;个人邮箱&#xff1a;2061314755qq.com &#x1f989;个人WeChat&#xff1a;Vir2021GKBS &#x1f43c;本文由…

通过iframe下载文件,怎么判断文件是否下载成功?

文章目录 概要问题思考问题解决方案技术细节小结 概要 最近在客户现场开发&#xff0c;碰到客户反馈一个问题&#xff0c;他用tab去承接下载文件的接口&#xff0c;假如文件不存在&#xff0c;会导致tab页面关闭不了 问题思考 下载接口用tab承接&#xff0c;设计思路就不对 虽…

学术神器ChatGPT在论文分析中的妙用!

话语分析是一个广泛的研究领域&#xff0c;它关注的是人们在实际社会交际场景中使用的语言单位。话语分析旨在揭示语言、社会和文化之间的互动关系&#xff0c;以及话诺在构建意义、传递信息、维护社会关系和表达权力等方面的作用。话语分析包括对话分析、批判性话语分析、语篇…

Android开发环境的安装配置及步骤详解

Android开发环境的安装配置是一个多步骤的过程&#xff0c;涉及JDK、Android Studio以及Android SDK的安装和配置。以下是详细的安装配置教程&#xff1a; 一、安装JDK 下载JDK&#xff1a;访问Oracle官方网站或JDK的官方下载页面&#xff0c;选择与你的操作系统和位数&#x…

二维码门楼牌管理系统应用场景:促进环境保护与资源管理的创新应用

文章目录 前言一、二维码门楼牌管理系统的概念与特点二、在环境保护领域的应用三、在资源管理领域的应用四、促进可持续发展的作用 前言 在数字化时代的浪潮下&#xff0c;二维码技术凭借其高效、便捷的特点&#xff0c;已经渗透到了我们生活的方方面面。二维码门楼牌管理系统…

defineExpose暴漏子组件的属性和方法!!!

需求&#xff1a;需要在父组件中使用子组件的方法或者属性 一、在子组件中定义方法&#xff0c;并将其暴漏出来 首先我引入了一个抽屉组件&#xff0c;通过open方法设置打开抽屉&#xff0c;然后通过difineExpose将open方法暴漏出来。 1、封装一个抽屉组件 <template>…

大模型笔记:最少到最多提示过程 (Least to Most prompting, LtM)

LEAST-TO-MOST PROMPTING ENABLES COMPLEX REASONING IN LARGE LANGUAGE MODELS 2023 ICLR 1 概述 进一步发展维链提示过程 (CoT prompting) 分为两个阶段&#xff1a; 第一阶段&#xff1a;向语言模型提出查询&#xff0c;将问题分解成子问题。第二阶段&#xff1a;再次向语…

laravel-admin 头部添加操作

新建html 样式及js namespace App\Admin\Extensions\Nav;class Links {public function __toString(){return <<<HTML<li><a href"" οnclick"js_method();return false;"><i class"fa fa-floppy-o"></i><s…

Meta的Llama2模型已上线!但我为何更推荐你从HuggingFace获取?还有Code Llama等你来解锁!

嘿&#xff0c;朋友们&#xff0c;今天给你们介绍一个新东西——Llama2模型&#xff0c;这是Meta&#xff08;对&#xff0c;就是Facebook那家&#xff09;推出的。 你可以直接去Llama的官网下载这个模型&#xff0c;然后按照他们GitHub上的指南来调用。 不过呢&#xff0c;我…

88. 合并两个有序数组

给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2&#xff0c;另有两个整数 m 和 n &#xff0c;分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中&#xff0c;使合并后的数组同样按 非递减顺序 排列。 注意&#xff1a;最终&#xff0c;合并后数组…