【力扣刷题 | 第十三天】

news2024/11/13 3:58:30

前言:

今天随机进行练习,题型上不会有什么限制,主要还是练习STL算法。

88. 合并两个有序数组 - 力扣(LeetCode)

给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。

请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。

注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。

解题思路:直接利用vector函数存储后排序就可以,这个题主要在锻炼我们对于sort算法函数的理解。

class Solution {
public:
    void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
      
        for(int i=0;i<n;i++)
        {
            nums1[m+i]=nums2[i];
        }
        sort(nums1.begin(),nums1.end());
    }
};

16. 最接近的三数之和 - 力扣(LeetCode)

给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。

返回这三个数的和。

假定每组输入只存在恰好一个解。

class Solution {
public:
    int threeSumClosest(std::vector<int> &nums, int target) {
  
        std::sort(nums.begin(), nums.end());
        
        
        int ans = nums[0] + nums[1] + nums[2];
        
       
        int size = (int) nums.size();

        for (int i = 0; i < size - 2; i++) {
          
            if (i > 0 && nums[i] == nums[i - 1]) continue;

            int left = i + 1;
            int right = size - 1;

            while (left < right) {
                int sum = nums[i] + nums[left] + nums[right];

                //等于target直接返回
                if (sum == target) return target;
                
                //左右指针移动, 逼近最接近的值
                if (sum > target) {
                    ans = abs(sum - target) < abs(ans - target) ? sum : ans;
                    right--;
                } else {
                    ans = abs(sum - target) < abs(ans - target) ? sum : ans;
                    left++;
                }
            }
        }
        return ans;
    }
};

总结:

        要学好STL算法函数,可以极大的优化我们的解题时间。

如果我的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力!

 

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

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

相关文章

[RocketMQ] Broker与NameServer的心跳服务源码 (四)

文章目录 1.Broker发送心跳注册请求源码1.1 发送心跳包入口1.2 registerBrokerAll注册broker信息 2.NameServer处理心跳注册请求2.1 处理心跳包入口2.2 NameServer注册broker信息2.2.1 RouteInfoManager介绍2.2.2 registerBroker注册broker 3.NameServer的心跳检测服务3.1 scan…

GIS坐标系统

最新在看GIS的理论知识&#xff0c;坐标系统这块比较抽象&#xff0c;B站上搜到到一个博主的视频&#xff0c;对这块讲解的比较通俗易懂&#xff0c;这里记录一下&#xff1a; 地理坐标系统 地理坐标系统是地球表面空间要素的定位参照系统。地理坐标系统是由经度和维度定义的。…

记录Unity Endless Runner要点

1. Array.IndexOf()查找数组中指定项的索引&#xff0c;如果没找到&#xff0c;就返回-1 2. 如果粒子不是循环播放的&#xff0c;则在粒子播放完毕之后销毁它 if (!m_ParticleSpawned.main.loop)Destroy(m_ParticleSpawned.gameObject, m_ParticleSpawned.main.duration); 3. 检…

普通单目相机标定

前言 这里我们还是以普通相机为例(非鱼眼相机)来进行后续的相关标定操作,再回顾下相机的成像模型如下所示。 已知相机内参(fx,fy,u0,v0),畸变系数[k1,k2,k3,p1,p2],相机外参[R|T]。世界坐标系中点Pw(Xw,Yw,Zw),投影至像素坐标系点p(u,v)的计算过程如下。 1)由世…

操作系统———文件管理

目录 一、初识文件管理1.文件属性2.文件内部数据组织3.文件之间组织4.操作系统向上提供的功能5.文件如何存放在外存6.其他需要由操作系统实现的文件管理功能7.总结 二、文件的逻辑结构1.无结构文件与有结构文件2.有结构文件的逻辑结构2.1顺序文件2.2索引文件2.3索引顺序文件 3.…

ChatGPT 指令知识要点

ChatGPT从入门到精通&#xff0c;一站式掌握办公自动化/爬虫/数据分析和可视化图表制作 全面AI时代就在转角 道路已经铺好了 “局外人”or“先行者” 就在此刻 等你决定1、ChatGPT从入门到精通&#xff0c;一站式掌握办公自动化/爬虫/数据分析和可视( 点击观看完整版本 )https…

Linux下MySQL的安装

文章目录 下载1.选择合适的yum源2.将yum源上传到Linux服务器中 安装1.安装yum源2.使用yum源一键安装MySQL3.安装时常见的问题4.检查安装 启动MySQL登录MySQL方案一方案二 下载 1.选择合适的yum源 在Linux学习阶段我们已经得知&#xff0c;在Linux环境下要安装应用程序必须要通…

【吴恩达deeplearning.ai】基于LangChain开发大语言应用模型(上)

以下内容均整理来自deeplearning.ai的同名课程 Location 课程访问地址 DLAI - Learning Platform Beta (deeplearning.ai) 一、什么是LangChain 1、LangChain介绍 LangChain是一个框架&#xff0c;用于开发由大语言模型驱动的应用程序。开发者相信&#xff0c;最强大的、差异…

面试大数据方向必问的问题:HDFS的读写流程

HDFS读写流程 这个问题是面试大数据分析师必不可少的问题&#xff0c;有不少面试者不能完整的说出 来&#xff0c;所以请务必记住。并且很多问题都是从 HDFS 读写流程中引申出来的。 一、HDFS读流程 Client 向 NameNode 发送 RPC 请求。请求文件 block 的位置&#xff1b;Na…

深入理解深度学习——BERT派生模型:扩大掩码范围SpanBERT

分类目录&#xff1a;《深入理解深度学习》总目录 MLM训练方法是BERT拥有自然语言理解能力的核心训练方法。然而&#xff0c;BERT在预训练过程中挑选掩码词的概率是独立计算的&#xff0c;即BERT掩码词的粒度是最小的&#xff0c;可能是单个词&#xff0c;也可能是一个词的部分…

【连载】经历了十多年的电子开发,回过头来跟大家一起,看穿单片机!

「经历了十多年的单片机开发&#xff0c;站在我现在的高度来回看单片机&#xff0c;可谓望眼欲穿。」 下面振南要介绍的是“单片机的体系架构模型”&#xff0c;是超脱于任何一种具体型号的单片机芯片之上的&#xff08;我感觉我要成仙&#xff09;&#xff0c;它具有很强的普适…

【Django】图形验证码显示及验证

图形验证码显示及验证 开发项目时&#xff0c;在登陆或者注册功能中为防止脚本恶意破坏系统&#xff0c;故而添加图形验证码。 文章目录 图形验证码显示及验证1 安装配置2 验证码显示及正确性验证3 效果显示 1 安装配置 安装第三方库 pip install django-simple-captcha配置s…

SpringBoot+Vue 的在线考试系统(附源码,数据库,教程)

文章目录 源码下载地址第一章第二章.主要技术第三章第四章 系统设计4.1功能结构4.2 数据库设计4.2.1 数据库E/R图4.2.2 数据库表 第五章 系统功能实现5.1系统登录注册5.2管理员功能模块 源码下载地址 源码下载地址 源码下载地址https://download.csdn.net/download/u013749113…

[python][yolov8][深度学习]将yolov8实例分割成一个类几句代码完成实例分割任务

大家都知道,yolov8目前支持图像分类、目标检测、姿态估计、实例分割&#xff0c;而实例分割一般都是用命令行去预测图片&#xff0c;这个如果要引入pyqt5或着嵌入其他python模块有点麻烦&#xff0c;因此需要封装一个类去预测图像&#xff0c;这样我们可以轻松完成各种实例分割…

Redis实战案例4-缓存更新策略

1. 缓存更新策略 缓存中的数据一致性问题&#xff08;数据库更新数据&#xff0c;而Redis存的是旧数据&#xff09; 内存淘汰策略&#xff1a;当内存很充足时&#xff0c;很长时间无法淘汰数据&#xff0c;所以很难控制淘汰&#xff0c;一致性差&#xff1b; 超时剔除&#xff…

【教学类-36】Midjounery生成的四张图片切片成四张小图

作品展示&#xff1a; 把一张正方形图片的四个等大小图切割成四张图片 背景需求 最近在学习ChatGPT的绘画&#xff08;midjounery AI艺术&#xff09; 我想给中班孩子找卡通动物图片&#xff08;黑白边框&#xff09;&#xff0c;打印下来&#xff0c;孩子们练习描边、涂色…

C++11-右值引用与移动语义

右值引用与移动语义 一&#xff0c;右值引用概念右值引用简单例子左值引用与右值引用的比较 二&#xff0c;右值引用的使用场景函数对于其内部局部对象的传值返回insert&#xff0c;push等接口左值引用与右值引用总结 三&#xff0c;完美转发四&#xff0c;新的类功能默认成员函…

【数据分享】1929-2022年全球站点的逐月平均海平面压力数据(Shp\Excel\12000个站点)

气象数据是在各项研究中都经常使用的数据&#xff0c;气象指标包括气温、风速、降水、能见度等指标&#xff0c;说到气象数据&#xff0c;最详细的气象数据是具体到气象监测站点的数据&#xff01; 对于具体到监测站点的气象数据&#xff0c;之前我们分享过1929-2022年全球气象…

机器学习小结之决策树

文章目录 前言一、介绍1.1 原理1.2 流程1.3 信息熵&#xff0c;信息增益和基尼不纯度 二、构建决策树2.1 特征选择2.2 决策树生成2.3 剪枝 三、经典算法3.1 ID33.2 C4.53.3 CART 四、案例4.1 Iris 数据集 鸢尾花 分类4.2 基于决策树的英雄联盟游戏胜负预测 参考 前言 决策树(D…

GDPU 模电(电工) 作业答案

&#x1f351; 配套资源 &#x1f4da; 电子技术基础&#xff1a;电路与模拟电子[第2版] 提取码: 345r 第2章 电阻电路分析 第4章 正弦稳态电路分析 第6章 半导体器件 第7章 放大电路分析 第8章 负反馈放大电路 第9章 集成运算放大器及其应用 第11章 直流稳压电源 &#x1f6…