文章目录

  • 哈希
    • 两数之和
    • 字母异位词分组
    • 最长连续序列
  • 双指针
    • 移动零
    • 盛最多水的容器
  • 滑动窗口
  • 子串

多刷题

LeetCode 热题100

哈希

两数之和

在这里插入图片描述

  • 思路分析
    • 暴力做法:每一个数字都与剩余的数字作比较,时间复杂度是O(n2)O(n^2)O(n2)
    • 哈希做法:我们可以使用一个哈希表存储已经检查过的数字,每次遍历到新的数字的时候,就在哈希表里面检查,target-num是否在这个哈希表里面;如果不存在,则将当前元素加入哈希表,哈希表存储的是{值:索引}
class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {int n = nums.size();// 使用哈希表map<int,int> store;for(int i = 0 ; i < n ;i++){int tar = target - nums[i];if (store.find(tar) != store.end()){return {store.find(tar)->second,i};}else{store[nums[i]] = i; }}return {};}
};

字母异位词分组

在这里插入图片描述

  • 思路分析:
    • 首先,如何判断哪些单词是等价的,也就是可以通过重新排列变为一样的?那么我们肯定会说,只要这个对应字符的个数和种类一样即可,但是我们实际上,并不会真正的去统计比较每一个字符串的字符的具体情况,然后进行一一对比
    • 既然都可以进行重新排序,为什么不直接将全部的字符串进行排序,我们将排序之后的字符作为键,原本的字符串作为值,这样就可以实现O(n)O(n)O(n)的时间复杂度进行统计,最后只需将这个值汇总一下即可
class Solution {
public:vector<vector<string>> groupAnagrams(vector<string>& strs) {// 存储{排序后字符串:原本字符串}unordered_map<string,vector<string>> store;for(auto& s:strs ){string tmp = s ;sort(s.begin(),s.end()); // 升序排序store[s].push_back(tmp);}// 整理答案vector<vector<string>> result;for (auto& p:store){result.push_back(p.second);}return result;}
};

最长连续序列

在这里插入图片描述

  • 思路分析:
    • 暴力做法:直接对全部的整数数组进行一个排序,然后进行遍历一遍即可,但是这个排序的时间复杂度为O(nlogn)O(nlogn)O(nlogn)
    • 哈希表:题目要求的是使用O(n)O(n)O(n)的时间复杂度进行计算,所以就不能进行这个排序操作,这里有几点操作技巧
      • 重复的元素,我们只需遍历一次即可
      • 找到以元素num开始的最大情况,当存在num-1在哈希表的时候,就直接跳过(因为以num-1会比以num开头的序列长1)
      • 然后我们就可以一直查找,看看是否num+1在哈希表,然后进行统计更新
class Solution {
public:int longestConsecutive(vector<int>& nums) {    int ans = 0;unordered_set<int> store(nums.begin(),nums.end()); // 把nums转成哈希集合for (int x : store){if (store.contains(x-1)){continue;}// 以 x 为序列起点int y = x + 1;while (store.contains(y)){y++;}// 此时的y-1是序列的最后一个数,那么从x开始到y-1,一共y-x个数字ans = max(ans,y-x);}return ans;}
};

双指针

双指针有多种类型,常见来说,就有正向双指针和对向双指针

移动零

在这里插入图片描述

  • 思路分析
    *

盛最多水的容器

在这里插入图片描述

在这里插入图片描述

滑动窗口

子串

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Idea或Pycharm上.idea的忽略提交的问题总结

文章目录问题描述如果是首次提交或者之后的提交代码时把.idea及其文件提交到远端仓库中&#xff0c;此时再创建.gitignore会不生效。问题描述 由于在代码托管平台上创建的项目&#xff0c;没有关联创建.gitignore文件。导致git 克隆到本地电脑上时&#xff0c;项目的根目录下也…

【锁】MySQL中有哪几种锁?

&#x1f4da; 欢迎来到我的Java八股文专栏&#xff01; &#x1f389; 各位程序员小伙伴们好呀~ &#x1f44b; 我是雪碧聊技术&#xff0c;很高兴能在CSDN与大家相遇&#xff01;✨ &#x1f680; 专栏介绍 这个专栏将专注于分享Java面试中的经典"八股文"知识点 &a…

旷视科技视觉算法面试30问全景精解

旷视科技视觉算法面试30问全景精解 ——AI赋能 智能安防 视觉创新&#xff1a;旷视科技视觉算法面试核心考点全览 前言 旷视科技&#xff08;Megvii&#xff09;作为全球领先的人工智能公司&#xff0c;专注于计算机视觉、深度学习和智能安防等领域&#xff0c;推动人脸识别、…

docker nginx 部署前端踩坑记录

文章目录坑点1&#xff1a;localhost 与127.0.0.1坑点1&#xff1a;localhost 与127.0.0.1 server {listen 80 default_server;client_max_body_size 20M;# 记录访问日志和错误日志access_log /var/log/nginx/host.access.log main;error_log /var/log/nginx/error.l…

JAVA_TEN-面向对象高级一

一.Static一 定义&#xff1a;叫静态&#xff0c;可以修饰成员变量、成员方法成员变量按有无static修饰&#xff0c;分为两种&#xff1a;类变量&#xff1a;有static 修饰&#xff0c;属于类&#xff0c;在计算机里只有一份&#xff0c;会被类的全部对象共享。实例变量&#x…

幻兽帕鲁开服教程

以下均为个人推荐&#xff0c;不喜勿喷&#xff0c;望审核大大明辨开服条件一台带公网的vps服务器&#xff08;需开放udp&#xff09;&#xff0c;配置至少为4c16g&#xff0c;推荐8c32g开服需要准备的工具&#xff1a;steamcmd&#xff1a;https://steamcdn-a.akamaihd.net/cl…

lesson21:Python面向对象编程

目录 引言 一、了解面向对象编程&#xff08;OOP&#xff09;&#xff1a;编程范式的革命 1.1 什么是面向对象编程&#xff1f; 1.2 OOP vs 面向过程&#xff1a;思维方式的差异 1.3 OOP的三大核心特性 二、类与对象&#xff1a;OOP的基石 2.1 类&#xff08;Class&#…

基于卷积神经网络与小波变换的医学图像超分辨率算法复现

基于卷积神经网络与小波变换的医学图像超分辨率算法复现 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家&#xff0c;觉得好请收藏。点击跳转到网站。 1. 引言 医学图像超分辨率技术在临床诊断和治疗规划…

HCIP第一二章笔记整理

第一章&#xff1a;复习HCIA第一阶段应用层&#xff1a;自然语言转换为编码表示层&#xff1a;编码转换为二进制介质访问控制层&#xff1a;二进制转化为信号物理层&#xff1a;传输电信号第二阶段&#xff1a;OSI参考模型应用层&#xff1a;提供网络服务表示层&#xff1a;对数…

《使用Qt Quick从零构建AI螺丝瑕疵检测系统》——2. C++基础:构建程序的坚实骨架

目录一、概述1.1 背景介绍&#xff1a;从UI到逻辑1.2 学习模式&#xff1a;Qt控制台应用二、C语法快速入门2.1 变量、数据类型与注释2.2 函数与代码封装2.3 循环与容器&#xff1a;批量处理三、面向对象编程&#xff1a;封装数据与行为四、Qt的核心扩展&#xff1a;信号与槽通信…

Navicat 远程连接SQLlite数据库

1、SQLlite数据库是一个本地.db文件&#xff0c;默认不支持远程连接&#xff1b; 2、Navicat 可以通过ntunnel_sqlite.php文件连接远程SQLlite库&#xff1b; 3、安装Navicat&#xff0c;安装完成&#xff0c;在安装目录下找到ntunnel_sqlite.php文件&#xff1b; 4、上传当前文…

OpenCV用于计算光流的一个类cv::optflow::DualTVL1OpticalFlow

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 cv::optflow::DualTVL1OpticalFlow 是 OpenCV 中用于计算光流的一个类&#xff0c;特别地&#xff0c;它实现了基于双帧 TV-L1&#xff08;Total V…

PyQt5在Pycharm上的环境搭建 -- Qt Designer + Pyuic + Pyrcc组合,大幅提升GUI开发效率

软件安装 目标软件&#xff1a; Python解释器Pycharm编辑器 Python官网&#xff1a; 点击访问Python官网 Pycharm官网&#xff1a;点击访问Pycharm官网 环境搭建 搭建完成后最终的环境详情&#xff1a; python安装路径&#xff1a;D:\ProgramEnviron\Python\Python311Pyth…

30天打牢数模基础-卷积神经网络讲解

案例代码实现一、代码说明本案例使用PyTorch实现一个改进版LeNet-5模型&#xff0c;用于CIFAR-10数据集的图像分类任务。代码包含以下核心步骤&#xff1a;数据加载与预处理&#xff08;含数据增强&#xff0c;划分训练/验证/测试集&#xff09;&#xff1b;定义CNN网络结构&am…

Dev-C++——winAPI贪吃蛇小游戏

&#x1f680;欢迎互三&#x1f449;&#xff1a;雾狩 &#x1f48e;&#x1f48e; &#x1f680;关注博主&#xff0c;后期持续更新系列文章 &#x1f680;如果有错误感谢请大家批评指出&#xff0c;及时修改 &#x1f680;感谢大家点赞&#x1f44d;收藏⭐评论✍ 今天水一篇吧…

【openbmc6】entity-manager

文章目录 2.1 事件监听:dbus在linux上使用的底层通信方式多半是unix domain socket ,事件的到来可被抽象为:socket上有数据,可读 2.2 事件处理:由于主线程肯定有逻辑得跑,因此新开一个线程甚至多个线程专门用来监听和处理事件,但存在多线程就意味着可能存在竞争,存在竞…

Java 实现 UDP 多发多收通信

在网络通信领域&#xff0c;UDP&#xff08;用户数据报协议&#xff09;以其无连接、高效率的特点&#xff0c;在实时通信场景中占据重要地位。本文将结合一段实现 UDP 多发多收的 Java 代码&#xff0c;详细解析其实现逻辑&#xff0c;帮助开发者深入理解 UDP 通信的底层逻辑与…

Java学习第六十二部分——Git

目录 一、关键概述 二、核心概念 三、常用命令 四、优势因素 五、应用方案 六、使用建议 一、关键概述 提问&#xff1a;Git 是什么&#xff1f; 回答&#xff1a;一句话&#xff0c;分布式版本控制系统&#xff08;DVCS&#xff09;&#xff0c;用来跟踪文件&#…

CDN和DNS 在分布式系统中的作用

一、DNS&#xff1a;域名系统&#xff08;Domain Name System&#xff09; 1. 核心功能 DNS是互联网的“地址簿”&#xff0c;负责将人类易记的域名&#xff08;如www.baidu.com&#xff09;解析为计算机可识别的IP地址&#xff08;如180.101.50.242&#xff09;。没有DNS&…

uniapp用webview导入本地网页,ios端打开页面空白问题

目前还没解决&#xff0c;DCloud官方也说不行 IOS下webview加载本地网页时&#xff0c;无法加载资源 - DCloud问答