【LeetCode】HOT 100(23)

news2024/11/26 3:38:41

题单介绍:

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

目录

题单介绍:

题目:448. 找到所有数组中消失的数字 - 力扣(Leetcode)

题目的接口:

解题思路:

代码:

过过过过啦!!!!

题目:438. 找到字符串中所有字母异位词 - 力扣(Leetcode)

题目的接口:

解题思路:

代码:

过过过过啦!!!!

写在最后:


题目:448. 找到所有数组中消失的数字 - 力扣(Leetcode)

题目的接口:

class Solution {
public:
    vector<int> findDisappearedNumbers(vector<int>& nums) {

    }
};

解题思路:

这道题直接做的话并不难,

直接把这个数组存进哈希,然后再遍历,

看看有那个数字不在这个数组里面,push进要返回的数组就行:

class Solution {
public:
    vector<int> findDisappearedNumbers(vector<int>& nums) {
        set<int> st;
        vector<int> v;
        for(auto e : nums) st.insert(e);
        for(int i = 1; i <= nums.size(); i++) {
            if(st.find(i) == st.end()) v.push_back(i);
        }
        return v;
    }
};

但是这段代码因为用的是set,

所以并不是O(N)的时间复杂度,空间复杂度也是O(N),

题目有个进阶要求,

毕竟是简单题,我就去做了一下进阶,

如果想要达成进阶的要求,有一个很妙的解法:

思路如下:

第一遍遍历的时候,标记数组中有数字的位置,

打个比方就是,遍历到1,就把数组第一个位置标记,代表有这个数字,

如果遍历到7,就把数组第7个位置标记,代表有7这个数字,

这样子我们就知道哪些位置没有被标记。

第二次遍历数组,将没有标记的位置的数字存进数组并返回即可

代码如下:

代码:

class Solution {
public:
    vector<int> findDisappearedNumbers(vector<int>& nums) {
        int n = nums.size();
        for(int i = 0; i < n; i++) {
            nums[(nums[i] - 1) % n] += n;
        }
        vector<int> v;
        for(int i = 0; i < n; i++) {
            if(nums[i] <= n) v.push_back(i + 1); 
        }
        return v;
    }
};

过过过过啦!!!!

题目:438. 找到字符串中所有字母异位词 - 力扣(Leetcode)

题目的接口:

class Solution {
public:
    vector<int> findAnagrams(string s, string p) {

    }
};

解题思路:

这道题是一道经典的滑动窗口题目,

滑动窗口的题目解题的思路基本上大同小异,

就是更新右边界,然后找到符合条件的子集之后,

计数或者是将题目要求的内容输入到数组里面之类的操作,

然后移动左边界,最后遍历完就可以返回了。

代码如下:

代码:

class Solution {
public:
    vector<int> findAnagrams(string s, string p) {
        unordered_map<char, int> need, window;
        for(auto e : p) need[e]++;
        int left = 0, right = 0, cnt = 0;
        vector<int> ans;
        while(right < s.size()) {
            char r = s[right];
            right++;
            if(need.count(r) > 0) {
                window[r]++;
                if(window[r] == need[r]) {
                    cnt++;
                }
            }
            if(cnt == need.size()) ans.push_back(left);
            while(right - left >= p.size()) {
                char l = s[left];
                left++;
                if(need.count(l) > 0) {
                    if(window[l] == need[l]) {
                        cnt--;
                    }
                    window[l]--;
                }
            }
        }
        return ans;
    }
};

过过过过啦!!!!

写在最后:

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

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

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

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

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

相关文章

JS语法学习实战系列

JS学习实战系列 一、数据类型二、运算符三、流程控制四、let 、var、 const 声明变量的区别 JavaScript&#xff08;简称“JS”&#xff09; 是一种具有函数优先的轻量级&#xff0c;解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名&#xff0c;但是它…

电路维修(双端队列bfs)

题意&#xff1a;从左上角走到右下角&#xff0c;且只能走斜线&#xff0c;斜线可以旋转&#xff0c;旋转斜线那么走过这条线&#xff0c;那么距离就加1&#xff0c;求最小的距离。 分析&#xff1a;有一个性质&#xff0c;因为起点是偶数点(0,0),那么它只能走到偶数点&#x…

进程间通信-有名管道

理解&#xff1a;有名管道类似于文件io 相当于新建一个管道文件作为中间介质 进行数据的交换&#xff08;因此可以不同线程间通信&#xff09; 写入管道文件 #include <sys/types.h> #include <sys/stat.h> #include <stdio.h> #include <stdlib.h> #…

菜鸡shader:L9 屏幕UV及屏幕UV扰动

文章目录 屏幕UV代码最后效果 屏幕UV扰动代码最后效果 屏幕UV 最主要的代码是屏幕UV的获取&#xff1a; 这里具体可以参考这位大佬的博客&#xff1a; 个人学习笔记——庄懂的技术美术入门课&#xff08;美术向&#xff09;17&#xff08;VS空间畸变矫正的原理&#xff09;个…

驱动程序设计 Linux设备驱动中的阻塞与非阻塞IO、信号与函数 7.12

linux设备驱动中的阻塞与非阻塞I/O 阻塞&#xff1a;等待某种资源&#xff0c;如果获取不到&#xff0c;就会把当前任务挂起&#xff0c;等待资源准备好 1. int flag 0; while(flag 0); 2.等待队列 wait_event(q,flag > 0); wakeup(q);非阻塞&#xff1a;等待某种资源非…

nodejs中使用Redis

安装教程&#xff1a;Redis 安装 | 菜鸟教程 redis下载链接&#xff1a;Release Redis for Windows 5.0.14.1 tporadowski/redis GitHub解压双击redis-server.exe启动服务器端双击redis-cil.exe启动客户端连接服务端在客户端看看能不能ping通 完成 遇到的问题1&#x…

前端处理后端返回的文件流,进行文件下载

二进制流格式 Blob格式 前言&#xff1a; 需求&#xff1a;根据后端接口返回的文件流进行数据处理&#xff0c;并实现文件的下载&#xff0c;且下载文件为word文档. 代码实现&#xff1a; //下载文件 async function DownLoadFile(row) {let res await DownLoadFileAPI(row.…

火山引擎 DataLeap 构建Data Catalog系统的实践(二):技术与产品概览

技术与产品概览 架构设计 元数据的接入 元数据接入支持T1和近实时两种方式 上游系统&#xff1a;包括各类存储系统&#xff08;比如Hive、 Clickhouse等&#xff09;和业务系统&#xff08;比如数据开发平台、数据质量平台等&#xff09; 中间层&#xff1a; ETL Bridge&#x…

PCL点云处理之最小二乘直线拟合(❤❤❤亲测可用❤❤❤)(二百)

PCL点云处理之最小二乘直线拟合(❤❤❤亲测可用❤❤❤)(二百) 一、算法介绍二、具体代码1.代码2.结果一、算法介绍 点云近似于直线分布,但相对要散乱一些,此时,最小二乘直线拟合,是一种最常用的拟合方法,可以从中找到最优的直线方程,用于描述点云的分布情况。网上介…

Yjmstr的算法竞赛模板(updating)

YJMSTR的算法竞赛模板 目录 文章目录 YJMSTR的算法竞赛模板目录图论一、最短路1.spfa与负环、最短路1.1 bfs-spfa找负环&#xff1a;1.2 dfs-spfa找负环1.3 spfa求最短路的优化 2.dijkstra模板&#xff08;set模拟二叉堆堆优化)2.1有向图最小环 3.Floyd求多源最短路/传递闭包/…

ARM Coresight 系列文章 7 - ARM Coresight 通过 AHB-AP 访问 cpu 内部 coresight 组件

文章目录 如下图所示&#xff0c;如果A78想去访问M33的内部 coresight 组件 ETM&#xff0c;需要要怎么做&#xff1f; 答案也正是在图中&#xff0c;首先A78 通过AXI 互联&#xff0c;接入到 APBIC 的 slave port&#xff0c;再通过APBIC 的 master 送出&#xff0c;而APBIC中…

【win11】将一个程序设置为开机启动

Windows 在 Windows 系统中&#xff0c;可以通过在 “启动” 文件夹中放置程序的快捷方式来实现开机启动。 按照以下步骤操作&#xff1a; 按 Win R 打开 “运行” 对话框&#xff0c;输入 shell:startup&#xff0c;然后按回车。这将打开 “启动” 文件夹。 找到你想设置…

自由视点合成中的表征学习(二)

三维重建以及神经渲染中的学习 公众号AI知识物语 本文内容为参加过去一次暑期课程学习时的笔记&#xff0c;浅浅记录下。 自由视点合成中的表征学习 目标&#xff1a;给定单一场景多个图片以及相机位子&#xff0c;生成新视角下的图像 挑战&#xff1a;恢复三维场景结构&…

Stable Diffusion (持续更新)

引言 本文的目的为记录stable diffusion的风格迁移&#xff0c;采用diffusers example中的text_to_image和textual_inversion目录 2023.7.11 收集了6张水墨画风格的图片&#xff0c;采用textual_inversion进行训练&#xff0c;以"The street of Paris, in the style of …

rabbitmq 开启 virtual host

由于我的rabbitmq架设在测试服务期。 导致我本地测试的mq消息&#xff0c;经常被服务器消费掉。 所以通过添加v-host&#xff0c;可以创建专属v-host域下的消息进行生产和消费。 一 新增用户 点击Admin,点击右边Users 输入Username Password &#xff0c;并且Tags给与Admin权…

25 MFC 富文本

文章目录 ui 设置 使用AfxInitRichEdit2(); 初始化否则不显示 //初始化 BOOL CnotePadDlg::OnInitDialog() {CDialogEx::OnInitDialog();// 设置此对话框的图标。 当应用程序主窗口不是对话框时&#xff0c;框架将自动// 执行此操作SetIcon(m_hIcon, TRUE); // 设置大图标…

latex安装

工作环境下载一下&#xff0c;本来想偷懒&#xff0c;但是网站的编辑器实在是不太给力。 先安装TeX Live(网址&#xff1a;TeX Live - TeX Users Group (tug.org)) 然后等待一会:(路径最好不要有中文) 然后&#xff0c;等待&#xff1a;&#xff08;很久&#xff09; 嘻嘻&…

深度学习-图像分类篇二:注意力机制

图像处理中的注意力机制 Transformer&Self-Attention QKV原理 Self-Attention以及Multi-Head Attention Self-Attention 不同任务&#xff08;李宏毅的注意力机制&#xff09; 1.输入n输出n&#xff1a;sequence labeling2.输入n输出1&#xff1a;标签 -3. 输入n输出m…

渲染流程(下):HTML、CSS和JavaScript,是如何变成页面的?

在上篇文章中,我们介绍了渲染流水线中的 DOM 生成、样式计算和布局三个阶段,那今天我们接着讲解渲染流水线后面的阶段。 这里还是先简单回顾下上节前三个阶段的主要内容:在 HTML 页面内容被提交给渲染引擎之后,渲染引擎首先将 HTML 解析为浏览器可以理解的 DOM;然后根据 …