【每天40分钟,我们一起用50天刷完 (剑指Offer)】第四十六天 46/50【扑克牌思维题】【队列】【贪心】

news2024/11/19 3:38:30

专注 效率 记忆
预习 笔记 复习 做题

欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录)
 
文章字体风格:
红色文字表示:重难点★✔
蓝色文字表示:思路以及想法★✔
 
如果大家觉得有帮助的话,感谢大家帮忙
点赞!收藏!转发!

本博客带大家一起学习,我们不图快,只求稳扎稳打。
由于我高三是在家自学的,经验教训告诉我,学习一定要长期积累,并且复习,所以我推出此系列。
只求每天坚持40分钟,一周学5天,复习2天
也就是一周学10道题
50天后我们就可以学完76道题,相信50天后,我们一定可以有扎实的代码基础!我们每天就40分钟,和我一起坚持下去吧!
qq群:866984458

本题出自 acwing网站
这个系列是免费的
打卡即刻退回费用。

第四十六天【剑指Offer例题代码 系列】

    • 69. 扑克牌的顺子【思维题】
        • 1. 判断所有牌中 是否出现 重复
        • 2. 有序sort后 判断是否最大差距 <=4
    • 70. 圆圈中最后剩下的数字【队列】
    • 71. 股票的最大利润【贪心】

69. 扑克牌的顺子【思维题】

在这里插入图片描述

1. 判断所有牌中 是否出现 重复

2. 有序sort后 判断是否最大差距 <=4

class Solution {
public:
    bool isContinuous( vector<int> nums) {
        sort(nums.begin(), nums.end());
        for (int i = 1; i < nums.size(); i ++ )
            if (nums[i] && nums[i] == nums[i - 1])
                return false;
        for (auto x : nums)
            if (x)
            {
                return nums.back() - x <= 4;
            }
    }
};

70. 圆圈中最后剩下的数字【队列】

在这里插入图片描述
直接维护一个队列来做:
每走过一步,就把队首元素放到队列的后面,每走完m步把队列头元素删除
直到进行完n-1次迭代

class Solution {
public:
    int lastRemaining(int n, int m){
        queue<int> q;
        for(int i = 0;i < n; i++) q.push(i);
        int cnt = 0;
        int s = q.size();
        while(cnt < n - 1){
        int curr = 0;//curr表示当前走了多少步
           while(curr < m - 1){ //每次从0开始走m-1步
               int t = q.front();
               q.pop();
               q.push(t);
               curr ++;
           }//循环结束说明当前走到了第m个元素
           q.pop();//把第m个元素删掉
           cnt ++;
        }

        return q.front();//删完n-1个元素,队列里剩下的就是最后一个元素,返回它
    }
};

71. 股票的最大利润【贪心】

在这里插入图片描述
想要让当前区间差值最大,就得找最小值右边的最大值,所以我们可以维护一个最小值,然后遍历数组,如果 numsinumsi 减去最小值维护答案,然后用 numsinumsi 去更新最小值。

class Solution {
public:
    int maxDiff(vector<int>& nums) {
        if (nums.size() == 0) return 0;
        int minn = nums[0], maxx = 0;
        for (int i = 1; i < nums.size(); i ++) {
            maxx = max(maxx, nums[i] - minn);
            minn = min(minn, nums[i]);
        }
        return maxx;
    }
};

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

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

相关文章

银河麒麟v10 vnc环境配置

方法一、启用自带远程桌面 银河麒麟默认已经自带远程桌面&#xff0c;如下图。此时即可用Realvnc Viewer访问该终端&#xff0c;仔细查看后自带的远程桌面是开源组件gnome-remote-desktopGNOME / gnome-remote-desktop GitLabhttps://gitlab.gnome.org/GNOME/gnome-remote-de…

war包方式安装linux和windows的geoserver

注意&#xff1a; 从Java 9开始&#xff0c;Oracle已经不再单独提供JRE&#xff08;Java Runtime Environment&#xff09;了&#xff0c;而是直接将JRE集成在JDK&#xff08;Java Development Kit&#xff09;中。这是因为JRE包含了运行Java程序所需的环境&#xff0c;而JDK除…

SpringBoot第30讲:SpringBoot集成MySQL - MyBatis-Plus基于字段隔离的多租户

SpringBoot第30讲&#xff1a;SpringBoot集成MySQL - MyBatis-Plus基于字段隔离的多租户 本文是SpringBoot第30讲&#xff0c;主要介绍 MyBatis-Plus的基于字段隔离的多租户实现&#xff0c;以及MyBatis-Plus的基于字段的隔离方式实践和原理。 文章目录 SpringBoot第30讲&#…

实例详解如何选择滤波算法

在机器视觉中,图像滤波器无处不在。例如,它们用于减少图像噪声,改善对比度或检测边缘。本文将向您介绍MVTec HALCON中一些最常用的滤波器,它们是如何工作的以及可以用于什么。 mean_image:均值滤波器 首先,我们读取具有背景纹理的示例图像。我们的目标是在不改变实际信…

OpenLayers实战,OpenLayers获取移动端精确定位,OpenLayers适配App混合H5方式调用手机定位位置并定位到指定点

专栏目录: OpenLayers实战进阶专栏目录 前言 本章讲解OpenLayers如何获取移动端精确定位位置。不使用任何native本地方法,只使用纯js实现。 本篇文章适用于App混合H5方式调用手机精确定位,打包时需要选择GPS位置权限,手机获取定位过程中会弹出是否允许定位的权限提示。 …

健身计划:用思维导图记录你的健身目标、锻炼项目、时间安排等

现在&#xff0c;大家越来越在乎自己的身体健康&#xff0c;健身也成了大家工作之外非常重要的一件事。一个好的健身计划的制定可以让我们的健身计划事半功倍。 思维导图作为一种高效的可视化思维工具&#xff0c;在健身计划制定的过程中&#xff0c;可以让我们的各项任务与时间…

人类机器人编程的心理机制(二)

\qquad 本文是关于“人类机器人编程的心理机制”讨论的第二部分&#xff0c;内容包括&#xff1a; 程序员内化和无意识记忆海量记忆存储宿主编程Self-状态(s)与宿主的接口恐惧条件反射下的无意识记忆恐惧条件反射是T.B.M.C的工作基础 \qquad 注释&#xff1a;本文基本内容主要…

Java稀疏数组

稀疏的概述 当一个数组中大部分元素为0&#xff0c;或者为同一值的数组时&#xff0c;可以使用稀疏数组来保存该数组。 稀疏数组的处理方式是&#xff1a; 记录数组一共有几行几列&#xff0c;有多少个不同值 把具有不同值的元素和行列及值记录在一个小规模的数组中&#xff0c…

docker 部署mysql 5.6集群

docker搭建mysql的集群&#xff08;一主双从&#xff09; 1.拉取镜像 docker pull mysql:5.6 2.启动master容器 docker run -it -d --name mysql_master -p 3306:3306 --ip 192.168.162.100 \ -v /data/mysql_master/mysql:/var/lib/mysql \ -v /data/mysql_master/conf.d…

利用XSS在线平台获取用户cookie

//XSS弹窗&#xff1a; <script>alert("xss")</script> XSS漏洞&#xff1a; //XSS弹窗&#xff1a; <script>alert("xss")</script> //XSS在线平台&#xff1a; <ScRipT sRc//7ix7kigpovxdbtd32fuspgffmtmufo3wwzgnzaltddewtb…

小白到运维工程师自学之路 第六十六集 (docker 网络模型)

一、概述 Docker网络模型是指Docker容器在网络中的通信方式和组织结构。Docker容器通过网络连接&#xff0c;使得容器之间可以相互通信&#xff0c;并与主机和外部网络进行交互。 在Docker中&#xff0c;有几种不同的网络模型可供选择&#xff1a; 1、主机模式&#xff08;H…

实习该选择c++后台开发还是音视频开发?

后台开发:更多是理解需求、分析问题、解决bug等能力、对于逻辑培养有很大的帮助。可以进行软件开发、网络开发、游戏开发、以及之后可能的物联网相关开发。但是容易陷入需求当中&#xff0c;熟练后就会容易乏味 音视频开发: 门槛比较高&#xff0c;需要大量积累&#xff0c;补…

给你一个网站如何测试?

主要围绕&#xff0c;功能&#xff0c;页面 UI &#xff0c;兼容&#xff0c;性能&#xff0c;安全&#xff0c;这几个方面去聊&#xff0c;首先是制定测试计划&#xff0c;确定测试范围和测试策略&#xff0c;一般包括以下几个部分&#xff1a;功能性测试&#xff1b;界面测试…

vue列表全选反选

1、结果查看 2、 选中时添加样式 3、点击选择调用方法 4、全选反选调用方法

多图在线合成gif怎么弄?图片合成gif在线操作更简单

将多张图片合成起来就可以做成gif动图&#xff0c;相信很多小伙伴都知道这种方法&#xff0c;那么什么样的操作方法能够更加简单快捷的完成gif合成处理呢&#xff1f;想要将多图合成gif&#xff0c;那么利用浏览器来使用在线gif制作&#xff08;https://www.gif.cn/&#xff09…

OLAP与OLTP的异同、定义及优劣

OLAP与OLTP的异同、定义及优劣 OLAP&#xff1a;联机事务处理定义应用场景优缺点 OLTP&#xff1a;联机分析处理定义应用场景优缺点 OLTP与OLAP异同点相同点不同点例子 OLAP&#xff1a;联机事务处理 定义 OLAP&#xff08;Online Analytical Processing&#xff0c;联机分析…

灵魂在高纬度的19个特征

01 喜欢奉献和付出‍ 在高维度的星球里&#xff0c;无私的爱是主旋律&#xff0c;所以是每个灵魂自动的反应。 02 喜欢光明&#xff0c;不喜欢黑暗 喜欢展现自己的阳光的一面&#xff0c;不喜欢自己黑暗的一面、尽量克制自己的不好的思维和行为&#xff0c;所以容易成为一个完…

中小企业实施MES管理系统,这几点需要注意

制造业是中国经济命脉所系&#xff0c;是立国之本、强国之基。作为世界制造大国&#xff0c;制造业一直是热门话题。当下&#xff0c;中小制造企业的产业地位不断提升&#xff0c;想要规范生产制造、提升产品竞争力&#xff0c;进行实施MES管理系统解决方案的企业越来越多。那么…

window安装TensorFlow遇到的问题

环境 windows 10 64位Anaconda 通常来说&#xff0c;官方文档作为一个建议&#xff0c;因为和国内场景会有些比较大的区别&#xff0c;当然参考文档 https://www.tensorflow.org/install/pip?hlzh-cn Anaconda升级 python建议升级到python3.0&#xff0c;这里通过Anaconda…

如何做好数仓BI项目的规划与建设?

BI项目规划和实施方案是保障BI项目顺利落地的首要环节。好的项目规划能有效提升开发人效&#xff0c;缩短项目周期&#xff0c;实现项目预期目标。 构建运营数据的可视化是为企业运营管控提供有效的支撑&#xff0c;成为企业在大数据时代智慧运营的必然路径。 在实际BI项目的…