13.哀家要长脑子了!

1. 442. 数组中重复的数据 - 力扣(LeetCode)

哎哟,可能是我太蠢了,我是真的觉得这些题目好神奇的,就这样做到了。感觉这道题跟昨天那道消失的它很类似,但是简单一点。

按照题目的要求数组如果排好序的话应该要是这样子的:数组下标加1等于元素值

nums[i] 等于 nums[i] - 1所指向的值;即:nums[i] = nums[nums[i] - 1]

 排序前:

排序后:每个位置的元素等于其下标加1,如果不是的说明是重复的元素

class Solution {
public:
    vector<int> findDuplicates(vector<int>& nums) {
        int n = nums.size();
        for(int i = 0; i < n; i++){
            while(nums[i] != nums[nums[i] - 1]){
                swap(nums[i], nums[nums[i] - 1]);
            }
        }
        vector<int> res;
        for(int i = 0; i < n; i++){
            if(nums[i] != i + 1){
                res.push_back(nums[i]);
            }
        }
        return res;
    }
};
 2. 41. 缺失的第一个正数 - 力扣(LeetCode)

这个如果没有时空复杂度的要求的话,就很简单

首先遍历整个数组,将非正数都变为数组长度加一

第二个for循环 是通过对数组元素值打标记(添加负号),待会来判断数组下标是否出现过,如果num在有效范围内,则尝试访问num代表的那个正整数在理想状态下应该所在的数组位置。例如,如果nums[i] 是5,则num-1 是4,意味着要去访问nums[4],看它是否已经被标记过。修改方式是将nums[num -1]的值变为负数。所以一个位置的值是负数,表示原本那个位置对应的正整数已经在数组中出现过。

其实我不明白为什么要用abs函数来确保操作的一定是正数,通过第一个for循环,数组内的元素不都是非负数了吗

然后第三个for循环第一个大于0的数字下标加一就是缺失的数字,否则遍历完的话,就是数组长度加一

class Solution {
public:
    int firstMissingPositive(vector<int>& nums) {
        int n = nums.size();
        for(int i = 0; i < n; i++){
            if(nums[i] <= 0){
                nums[i] = n + 1;
            }
        }
        for(int i = 0; i < n; i++){
            int num = abs(nums[i]);
            if(num <= n){   // 存在的数只考虑 [1,n] 内的
                 nums[num - 1] = -abs(nums[num - 1]);
            }
        }
        for(int i = 0; i < n; i++){
            if(nums[i] > 0){
                return i + 1;
            }
        }
        return n + 1;
    }
};
3.  485. 最大连续 1 的个数 - 力扣(LeetCode)

 

这个简单啊这个简单

class Solution {
public:
    int findMaxConsecutiveOnes(vector<int>& nums) {
        int res = -999, flag = 0;
        for(int i = 0; i < nums.size(); i++){
            if(nums[i] == 1){
                flag++;
            }
            else{
                res = max(flag, res);
                // res.push_back(flag); 
                flag = 0;
            }
            
        }
        return res = max(flag, res);
    }
};

最后返回别忘了也要麦克西

4. 

495. 提莫攻击 - 力扣(LeetCode)

当第一 次中毒还没结束第二次中毒就开始,此时的中毒时间计算如下:

 

class Solution {
public:
    int findPoisonedDuration(vector<int>& timeSeries, int duration) {
        int end = 0, res = 0;
        for(int i = 0; i < timeSeries.size(); i++){
            if(timeSeries[i] >= end){
                res += duration;
            }
            else{
                res += timeSeries[i] + duration - end; 
            }
            end = timeSeries[i] + duration;
        }
        return res;
    }
};
5. 414. 第三大的数 - 力扣(LeetCode)

想到用set但是输出倒数第三个我只能用这种蠢办法。。。

class Solution {
public:
    int thirdMax(vector<int>& nums) {
        set<int> s(nums.begin(), nums.end());
        int n = s.size();
        if(s.size() < 3){
            return *max_element(s.begin(), s.end());
        }
        else{
             auto it = s.end();
        // 因为end()指向最后一个元素的下一个位置,所以我们需要向前移动两次
        it--; 
        it--; 
        it--; 
        return *it;
        }
    }
};

官方题解是把数组元素插入到set集合时,只要大于3就把前面的元素移除出集合,最后留在set集合里面的就是剩下最大的三个元素了咯 最后返回的时候,如果set集合长度大于3就输出第一个元素(三个里面最小的,第三大),小于三就输出最大的元素即最后一个。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

必应Bing国内广告推广,帮助企业降低获客成本!

搜索引擎广告作为数字营销的重要手段之一&#xff0c;因其精准定位和效果可衡量而备受青睐。而在众多搜索引擎平台中&#xff0c;必应Bing以其独特的市场定位和用户群体成为不可忽视的广告推广渠道。云衔科技作为一家专业的数字营销服务提供商&#xff0c;致力于帮助企业实现高…

Fiddler抓包工具之高级工具栏中的Inspectors的使用

高级工具栏中的Inspectors的使用 Inspectors 页签允许你用多种不同格式查看每个请求和响应的内容。JPG 格式使用 ImageView 就可以看到图片&#xff0c;HTML/JS/CSS 使用 TextView 可以看到响应的内容。Raw标签可以查看原始的符合http标准的请求和响应头。Cookies标签可以看到…

标志寄存器

文章目录 标志寄存器1. ZF标志2. PF标志3. SF标志4. CF标志5. OF标志6. adc指令7. sbb指令8. cmp指令9. 检测比较结果的条件转移指令10. DF标志和串传送指令11. pushf和popf 标志寄存器 flag 和其他寄存器不一样&#xff0c;其他寄存器是用来存放数据的&#xff0c;都是整个寄…

MCU最小系统晶振模块设计

单片机的心脏&#xff1a;晶振 晶振模块 单片机有两个心脏&#xff0c;一个是8M的心脏&#xff0c;一个是32.768的心脏 8M的精度较低&#xff0c;所以需要外接一个32.768khz 为什么是8MHZ呢&#xff0c;因为内部自带的 频率越高&#xff0c;精度越高&#xff0c;功耗越大&am…

直拍打法 漫漫长夜

小时候爱玩的时候&#xff0c;有马琳&#xff0c;刘国梁这些大腿在&#xff0c;谁敢想象现在顶尖高手中只有一根独苗而且是欧洲本土独苗了&#xff1f; 小勒布伦&#xff0c;真*直拍之光。 有一说一&#xff0c;国际乒联对于器材的调整&#xff0c;无论是改低粘度的无机胶水&am…

Docker(七):容器监控工具(Portainer、CAdvisor)

一&#xff1a;轻量级可视化监控工具Portainer 可视化监控工具, 可以通过docker安装&#xff0c;用于管理和监控docker&#xff0c;基本上的docker命令都有对应的按钮来操作。 # always 表示docker重启了该容器也跟着重启 docker run -d --name portainer -p 8000:8000 -p 90…

使用docker部署数据可视化平台Metabase

目前公司没有人力开发数据可视化看板&#xff0c;因此考虑自己搭建开源可视化平台MetaBase。在此记录下部署过程~ 一、镜像下载 docker pull metabase/metabase:latest 运行结果如下&#xff1a; 二、创建容器 docker run -dit --name matebase -p 3000:3000\ -v /home/loc…

将gidp模块、ipam集成到ultralytics项目中实现gidp-yolov8、ipam-yolov8

gdip-yolo与ia-seg都是一种将图像自适应模块插入模型前面,从而提升模型在特定数据下检测能力的网络结构。gdip-yolo提出了gdip模块,可以应用到大雾数据与低亮度数据(夜晚环境),然后用于目标检测训练;ia-seg将ia-yolo中的代码修改了一下修车了ipam模块,应用到低亮度数据(…

柯桥商务口语之怎么样说英语更加礼貌?十个礼貌用语get起来!

当你在国外需要帮助的时候&#xff0c;这些礼貌用语真的是能够帮到你的哦 1.Would/Could you help me? 你可帮助我吗&#xff1f; 相信有些人想请求帮助的时候&#xff0c;一开口就用Can you&#xff0c;这个用在朋友或者熟人上面当然是没有问题的&#xff0c;但是如果是向…

揭秘“金松奖” | 一个金融科技行业的热门解决方案

近日&#xff0c;2023年度第十届“金松奖”金融科技行业评选结果正式揭晓&#xff0c;开源网安凭借「度小满互联网金融开源软件治理解决方案」入选合规科技发展热门方案。 “金松奖”是移动支付网主办的金融科技行业线上评选活动&#xff0c;旨在从企业、产品、方案和案例等多维…

ArcGIS无法链接在线地图或错误: 代理服务器从远程服务器收到了错误地址(验证服务器是否正在运行)。

这几天我们分享了&#xff01; 谷歌卫星影像图归来&#xff01;ArcGIS直连&#xff01;快来获取_谷歌影像lyr-CSDN博客文章浏览阅读666次&#xff0c;点赞11次&#xff0c;收藏9次。大概。_谷歌影像lyrhttps://blog.csdn.net/kinghxj/article/details/137521877一套图源搞定&a…

别找了,这35份Excel自动排班表真的好用!

别再自己做排班表了&#xff0c;调了半天不好看格式还不对。 看看自己需要的是哪些类型的排班表&#xff1f;是公司值班&#xff0c;还是直播排班&#xff0c;还是考勤汇总&#xff0c;总有一个适合你。 刚整理的35份办公常用的排班表&#xff0c;希望能帮到你&#xff01; …

EI级 | Matlab实现VMD-TCN-LSTM-MATT变分模态分解卷积长短期记忆神经网多头注意力多变量时间序列预测

EI级 | Matlab实现VMD-TCN-LSTM-MATT变分模态分解卷积长短期记忆神经网多头注意力多变量时间序列预测 目录 EI级 | Matlab实现VMD-TCN-LSTM-MATT变分模态分解卷积长短期记忆神经网多头注意力多变量时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.Matlab实…

Pytest精通指南(16)利用skip、skipif跳过用例执行

文章目录 前言skip源码分析skip装饰方法skip装饰类skip装饰模块skipif源码分析skipif装饰方法skipif装饰类skipif装饰模块拓展-用例内部跳过执行 前言 skip: skip用于无条件地跳过测试用例&#xff0c;无论测试环境的状态或条件如何。通常用于那些在任何情况下都不应该执行的测…

深入解析Rivest Cipher 4:理论与实践

title: 深入解析Rivest Cipher 4&#xff1a;理论与实践 date: 2024/4/17 20:30:58 updated: 2024/4/17 20:30:58 tags: 密码学RC4算法流密码密钥调度安全分析优缺点应用实践 第一章&#xff1a;引言 密码学简介&#xff1a; 密码学是研究如何保护通信和信息安全的学科。它涉…

国内外AI programmer 大全集--持续更新

国内&#xff1a; 通义灵码&#xff1a; 公司&#xff1a;阿里巴巴集团旗下的阿里云发布年份&#xff1a;未明确指出具体年份&#xff0c;但已在2024年4月3日前入职并上岗一段时间名称&#xff1a;通义灵码工号&#xff1a;AI001 iFlyCode&#xff1a; 公司&#xff1a;科大…

RabbitMQ-核心特性

已经不需要为RabbitMQ交换机的离去而感到伤心了&#xff0c;接下来登场的是RabbitMQ-核心特性!!! 文章目录 核心特性消息过期机制消息确认机制死信队列 核心特性 消息过期机制 官方文档&#xff1a;https://www.rabbitmq.com/ttl.html 可以给每条消息指定一个有效期&#xf…

git 分支-变基

在git中&#xff0c;将一个分支的更改集成到另一个分支有两种主要方式&#xff1a;合并&#xff08;merge&#xff09;和变基&#xff08;rebase&#xff09;。在本节中&#xff0c;将学习什么是变基&#xff0c;如何执行变基操作&#xff0c;为什么它是一个非常强大的工具&…

C++ 一个有关类模板、构造函数、析构函数、拷贝构造、重载等的数组案例分析

文章目录 概要根据代码和输出进行分析&#xff08;看注释和图示&#xff09;个人小结 概要 案例描述: 实现一个通用的数组类&#xff0c;要求如下&#xff1a; 可以对内置数据类型以及自定义数据类型的数据进行存储&#xff1b;将数组中的数据存储到堆区&#xff1b;构造函数…

QT-编译报库错误(LF/CRLF)

QT-安装后环境问题记录 版本和环境问题 版本和环境 QT5.15.2 Windows10 QT Creator 问题 在QT夸端开发的项目中 &#xff0c;使用QTCreator打开项目pro文件&#xff0c;编译报出很多系统库 及本地文件中的一些问题&#xff0c;具体如图&#xff1a; 后续&#xff0c;我以为…
最新文章