【LeetCode】HOT 100(6)

news2024/11/27 13:34:14

题单介绍:

精选 100 道力扣(LeetCode)上最热门的题目,适合初识算法与数据结构的新手和想要在短时间内高效提升的人,熟练掌握这 100 道题,你就已经具备了在代码世界通行的基本能力。

目录

题单介绍:

题目:34. 在排序数组中查找元素的第一个和最后一个位置 - 力扣(Leetcode)

题目的接口:

解题思路:

代码:

过过过过啦!!!!

题目:39. 组合总和 - 力扣(Leetcode)

题目的接口:

解题思路:

代码:

过过过过啦!!!!

写在最后:


题目:34. 在排序数组中查找元素的第一个和最后一个位置 - 力扣(Leetcode)

题目的接口:

class Solution {
public:
    vector<int> searchRange(vector<int>& nums, int target) {

    }
};

解题思路:

这道题看一眼题目,然后看到时间复杂度的要求,

马上就能知道,暴力过不了,必须要二分,

总体思路就是用二分查找左右边界即可,

具体思路如下:

通过二分查找出题目要求的target所在的位置(nums[mid] == target)

然后分两种情况,

如果是查找左边界,就一直更新右边界靠过去

如果是查找右边界,就一直更新左边界靠过去

代码如下:

代码:

class Solution {
public:
    vector<int> searchRange(vector<int>& nums, int target) {
        return {search_range(nums, target, "left"), search_range(nums, target, "right")};
    }
private:
    int search_range(const vector<int>& nums, int target, const string& side) {
        int left = 0, right = nums.size() - 1;
        int res = -1;
        while(left <= right) {
            int mid = (left + right) >> 1;
            if(nums[mid] < target) { //经典二分
                left = mid + 1;
            }
            else if(nums[mid] > target) {
                right = mid - 1;
            }
            else { //nums[mid] == target
                res = mid;
                if(side == "left") { //更新右边界靠过去
                    right = mid - 1;
                }
                if(side == "right") { //更新左边界靠过去
                    left = mid + 1;
                }
            }
        }
        return res;
    }
};

过过过过啦!!!!

题目:39. 组合总和 - 力扣(Leetcode)

题目的接口:

class Solution {
public:
    vector<vector<int>> combinationSum(vector<int>& candidates, int target) {

    }
};

解题思路:

这道题他说的组合数不超过150个,马上就想到,这不得暴力拿下,

直接暴力的话好像有一些问题,同一个数可以多次选取,用循环不好实现,

那这个时候我就想到搜索了,dfs拿下这道题问题不大,

代码如下:

代码:

class Solution {
public:
    vector<int> v; //每个合格的数组(sum == target)
    vector<vector<int>> combinationSum(vector<int>& candidates, int target) {
        vector<vector<int>> res; //存返回的数组
        dfs(candidates, res, target, 0, 0); //搜索
        return res;
    }
private:
    void dfs(const vector<int>& candidates, vector<vector<int>>& res,
            int target, int sum, int begin) {
        if(sum == target) { //符合条件
            res.push_back(v);
            return;
        }
        if(sum > target) return; //剪枝
        for(int i = begin; i < candidates.size(); i++) { //搜索
            v.push_back(candidates[i]);
            dfs(candidates, res, target, sum + candidates[i], i);
            v.pop_back(); //回溯
        }
    }
};

过过过过啦!!!!

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果感到有所收获的话可以给博主点一个哦。

如果文章内容有遗漏或者错误的地方欢迎私信博主或者在评论区指出~

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

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

相关文章

python包装与授权

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和…

ai聊天对话工具哪种好用?这些ai对话聊天工具不要错过

在如今信息爆炸的时代&#xff0c;人工智能技术正在逐渐渗透到我们的生活和工作中。ai对话聊天技术作为其中的一项重要应用&#xff0c;吸引了越来越多的关注。但是&#xff0c;ai对话聊天技术并不是万能的&#xff0c;它需要一定的技巧和策略才能真正发挥其价值。那么&#xf…

CAN总线转串口

一、CAN总线在工程机械中的广泛应用 随着科技的进步和现代施工项目大型化的要求,新一代工程机械需要实现集成化操作和智能控制。CAN总线是国际上应用最广泛的现场总线之一。CAN总线以其高可靠性、实时性、无破坏仲裁、多主等特性&#xff0c;已广泛应用于工程机械中&#xff0c…

这里推荐几个前端动画效果网站

1. AnimistaAnimista 是一个 CSS 动画/转场库和在线工具。它有许多现成的 CSS 动画片段可以直接使用,也可以在线定制动画。 网站地址:Animista - On-Demand CSS Animations Library 2. Animate.cssAnimate.css 是一个免费的 CSS 动画库,里面有 Attention Seekers 、 Bouncing E…

【Java|多线程与高并发】线程安全问题以及synchronized使用实例

文章目录 1. 前言2. 线程安全问题演示3.线程安全问题的原因4.synchronized关键字5. 总结 1. 前言 Java多线程环境下&#xff0c;多个线程同时访问共享资源时可能出现的数据竞争和不一致的情况。 线程安全一直都是一个令人头疼的问题.为了解决这个问题,Java为我们提供了很多方式…

MySQL为什么有了redolog还需要double write buffer?

MySQL为什么有了redolog还需要double write buffer&#xff1f; 问题 我们知道MySQL InnoDB引擎使用redolog作为异常容灾恢复的机制&#xff0c;当MySQL进程发生异常退出、机器断电等&#xff0c;在重新启动时&#xff0c;使用redolog恢复。 OK&#xff0c;redolog是被MySQL…

进程同步与进程通信(#include <windows.h>)

目录 实验二 进程同步与进程通信 一、实验目的 二、实验内容 任务一、进程同步与互斥 任务二、进程通信 实验二 进程同步与进程通信 备注&#xff1a;大二&#xff08;下&#xff09;操作系统实验二 一、实验目的 掌握基本的同步与互斥算法&#xff0c;理解P&#xff…

移植蓝牙芯片后,PCM 无声音问题记录

背景:投影仪项目上的蓝牙模组本地已经验证ok,送到客户那里发现HFP打电话没声音。 1. 客户平台是3566,android 11的环境, 该环境下其他的模组是可以的 2. 在3566上安装QQ, 波通VOIP电话后, 无阴影, 3. 通过示波器接收pcm 无波形输出, 问题分析查证 1.查看HCI log ,…

【LeetCode热题100】打卡第17天:接雨水全排列旋转图像

文章目录 【LeetCode热题100】打卡第17天&#xff1a;接雨水&全排列&旋转图像⛅前言 接雨水&#x1f512;题目&#x1f511;题解 全排列&#x1f512;题目&#x1f511;题解 旋转图像&#x1f512;题目&#x1f511;题解 【LeetCode热题100】打卡第17天&#xff1a;接雨…

Elasticsearch 中文分词器

IK 分词器 我们在ES中最常用的中文分词器就是IK分词器&#xff0c;其项目地址为&#xff1a;https://github.com/medcl/elasticsearch-analysis-ik 下载安装 下载地址&#xff1a; https://github.com/medcl/elasticsearch-analysis-ik/releases 下载时注意和es的版本对应&a…

Network 之十二 iPXE 源码、编译过程、Linker tables 机制、移植新驱动、固件使用

最近&#xff0c;正在学习 iPXE 源码&#xff0c;于是开始各种 Google 查找 iPXE 的资料进行学习。以下就是学习过程中一些感觉比较重要的点&#xff0c;特此记录&#xff0c;以备后续查阅。 起源 上世纪 90 年代初&#xff0c;网卡开始在其扩展卡上包含启动 ROM&#xff0c;每…

2023-6-9-一天一种设计模式

&#x1f37f;*★,*:.☆(&#xffe3;▽&#xffe3;)/$:*.★* &#x1f37f; &#x1f4a5;&#x1f4a5;&#x1f4a5;欢迎来到&#x1f91e;汤姆&#x1f91e;的csdn博文&#x1f4a5;&#x1f4a5;&#x1f4a5; &#x1f49f;&#x1f49f;喜欢的朋友可以关注一下&#xf…

当在浏览器截屏过曝时,应该采取的措施

一、问题来源 屏幕打开了HDR模式后&#xff0c;浏览器在截图的一瞬间出现色彩错误 正常情况如下&#xff1a; HDR截图过曝后如下&#xff1a; 二、解决方法 1. 关闭屏幕HDR模式 桌面右键显示设置关闭HDR选项 2. 修改浏览器选项 地址栏输入 edge://flags&#xff08;Edg…

【Spring框架】初识Spirng

目录 Spring是什么&#xff1f;什么是容器&#xff1f;什么是IoC&#xff1f;传统开发ioc 开发(控制反转式程序开发) DI(依赖注入) Spring是什么&#xff1f; Spring指的是Spring Framework(Spring框架)&#xff0c;它是一个开源框架&#xff0c;有着活跃而庞大的社区&#xf…

支持无线连接的头戴式耳机,双音腔结构很好听,雷柏VH800上手

平时在PC上玩游戏&#xff0c;除了键鼠一类的操控设备很重要之外&#xff0c;耳机等音频设备也很重要&#xff0c;我用的是头戴式耳机&#xff0c;这种耳机现在有无线版本&#xff0c;用起来很方便&#xff0c;而且延迟很低&#xff0c;可以带来更好的声画同步效果&#xff0c;…

在unity中如何使用chatGPT让虚拟IP动起来

1、导入chatGpt 解决AI智能回答 请根据上一篇文章进行导入&#xff1a;如何使用ChatGPT在unity中进行低代码快速开发&#xff1f;_向视科技&#xff0c;让您看见未来&#xff08;nbhctec&#xff09;的博客-CSDN博客 2、文本也有转换工具 可导入unity 插件-RT-Voice PRO 2.…

【回眸】Python入门(五)基础语法列表和词典:Python如何消灭重复性劳动

前言 本篇博客为填坑篇&#xff0c;这个系列的上一篇竟然是2021年的9月30更新的&#xff0c;离谱&#xff0c;差点就到断更两周年纪念日了&#xff0c;后续逐渐走向填坑的每一天&#xff0c;继续创作&#xff0c;希望这个系列的专栏文章能帮助到更多有需要的人。 列表 什么是列…

C++算法:有向无环图拓扑排序(领接链表)

文章目录 前言一、邻接表二、代码1、生成图2、出度、入度计算3、拓扑排序 总结 前言 前文有向无环图实现游戏技能树中我们使用了矩阵存储图的关系&#xff0c;可以称之为邻接矩阵。显然&#xff0c;链表也是可以实现的。在图结构入门一文中&#xff0c;我们也提到了链表存储的…

湖南大学OS-2020(另一张)期末考试解析

【特别注意】 答案来源于wolf以及网络 是我在备考时自己做的&#xff0c;仅供参考&#xff0c;若有不同的地方欢迎讨论。 【试卷评析】 这张卷子很老了&#xff0c;我不知道具体的年份&#xff0c;部分题目可能有用。如果仔细研究应该会有所收获。 【试卷与答案】 一、选…

机器学习 | 决策树 Decision Tree | 概念向

参考视频&#xff1a;【小萌五分钟】机器学习 | 决策树 文章目录 &#x1f4da;决策树是什么&#xff08;根节点、叶子节点、分支、深度&#xff09;&#x1f4da;决策树&#xff1a;分类树——算法思想&#x1f4da;分类错误率&#xff0c;熵&#xff0c;基尼指数&#x1f407…