Leetcode刷题Day5休息 Day6----------哈希表

news2025/7/11 19:49:06

Leetcode刷题Day5休息 & Day6----------哈希表

1. 哈希表理论基础

数组、Set、Map
如果数据量小------------数组
如果数据量大------------Set
如果有Key、value------------Map

  • 文章讲解:https://programmercarl.com/%E5%93%88%E5%B8%8C%E8%A1%A8%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html

2. 有效的字母异位词 (242)

  • 题目链接:https://leetcode.cn/problems/valid-anagram/
  • 文章讲解: https://programmercarl.com/0242.%E6%9C%89%E6%95%88%E7%9A%84%E5%AD%97%E6%AF%8D%E5%BC%82%E4%BD%8D%E8%AF%8D.html
  • 视频讲解:https://www.bilibili.com/video/BV1YG411p7BA/?vd_source=1fb98c05c7fbfd06713f014ea5079d5b

思路

  1. 分别统计两个字符串每个字母出现的次数,看是否相同。
  2. 数据量小---------使用数组
class Solution {
    public boolean isAnagram(String s, String t) {
        int[] ints=new int[26];
        for(int i=0;i<s.length();i++){
            ints[s.charAt(i)-'a']++;
        }
        for(int i=0;i<t.length();i++){
            ints[t.charAt(i)-'a']--;
        }
        for(int i=0;i<ints.length;i++){
            if(ints[i]!=0) return false;
        }
        return true;
    }
}

3. 两个数组的交集 (349)

  • 题目链接: https://leetcode.cn/problems/intersection-of-two-arrays/
  • 文章讲解/视频讲解:https://programmercarl.com/0349.%E4%B8%A4%E4%B8%AA%E6%95%B0%E7%BB%84%E7%9A%84%E4%BA%A4%E9%9B%86.html

思路

  1. 用把第一个数组的数据加到Set1里 在Set1里查是否有数组2的元素,把有的数据在放到Set2里(避免重复) 将Set2转成数组
  2. set2.stream().mapToInt(x -> x).toArray();
    Javadoc链接:https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html
class Solution {
    public int[] intersection(int[] nums1, int[] nums2) {
        Set<Integer> set=new HashSet<>();
        Set<Integer> set2=new HashSet<>();
        int[] ints=new int[Math.max(nums2.length,nums1.length)];

        for(int i=0;i<nums1.length;i++){
            set.add(nums1[i]);
        }
        for(int i=0;i<nums2.length;i++){
            if(set.contains(nums2[i])){
                set2.add(nums2[i]);
            } 
        }
        return set2.stream().mapToInt(x -> x).toArray();
    }
}

4. 快乐数 (202)

  • 题目链接: https://leetcode.cn/problems/happy-number/
  • 文章讲解:https://programmercarl.com/0202.%E5%BF%AB%E4%B9%90%E6%95%B0.html

思路

  • 循环说明了要用Set,看是否存在
  • while循环终止的条件:n==1 或者n成为了循环数,所以在循环外判断是否等于1来判断是否是快乐数。因为存在一种成为循环数了但不是1的情况,输入2:循环数是4。例如:
    在这里插入图片描述
  • 数字运算:有多位数的可能,例如:100,所以判断是否>0,先得余,再得商
class Solution {
    public boolean isHappy(int n) {
        Set<Integer> set=new HashSet<>();
        while(n!=1&&!set.contains(n)){
            set.add(n);
            n=getNum(n);
        } 
        return n==1;   
    }

    public int getNum(int n){
        int res=0;
        while(n>0){
            res+=(n%10)*(n%10);
            n=n/10;
        }
        System.out.println(res);
        return res;
    }
}

5. 两数之和 (1)

  • 题目链接: https://leetcode.cn/problems/two-sum/
  • 文章讲解/视频讲解:https://programmercarl.com/0001.%E4%B8%A4%E6%95%B0%E4%B9%8B%E5%92%8C.html
class Solution {
    public int[] twoSum(int[] nums, int target) {
        Map<Integer,Integer> map=new HashMap<>();
        for(int i=0;i<nums.length;i++){
            int num=target-nums[i];
            if(!map.containsKey(num)){
                map.put(nums[i],i);
            }else 
                return new int[]{i,map.get(num)};
        }
        return new int[0];    
    }
}

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

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

相关文章

【雷达检测】基于复杂环境下的雷达目标检测技术(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

数据之道读书笔记-06面向“自助消费”的数据服务建设

数据之道读书笔记-06面向“自助消费”的数据服务建设 数据底座建设的目标是更好地支撑数据消费&#xff0c;在完成数据的汇聚、整合、联接之后&#xff0c;还需要在供应侧确保用户更便捷、更安全地获取数据。一方面业务人员希望尽可能快速地获取各种所需的数据&#xff0c;另一…

基于双目相机拍摄图像的深度信息提取和目标测距matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB程序 1.算法描述 双目相机一般由左眼和右眼两个水平放置的相机组成。当然也可以做成上下两个目&#xff0c;但我们见到的主流双目都是做成左右的。在左右双目的相机中&#xff0c;我们可以把两个相机都看作针…

大数据毕设选题 - 深度学习图像超分辨率重建(opencv python cnn)

文章目录0 前言1 什么是图像超分辨率重建2 应用场景3 实现方法4 SRResNet算法原理5 SRCNN设计思路6 代码实现6.1 代码结构组织6.2 train_srresnet6.3 训练效果7 最后0 前言 &#x1f525; Hi&#xff0c;大家好&#xff0c;这里是丹成学长的毕设系列文章&#xff01; &#x…

读写分离和主从复制

这是只有一个数据库的情形&#xff0c;此时增删改查都是针对这个数据库而言 存在两个问题&#xff1a;所有压力都是由一台数据库承担&#xff0c;数据库压力很大 而且&#xff0c;一旦这个数据库发生故障&#xff0c;数据丢失&#xff0c;拿数据就全都没了 现在有两个数据库&…

总结使人进步,4句真章的理解和实践

在“总结使人进步&#xff0c;遵循事物的客观发展规律&#xff1b;祸福相依&#xff0c;知行合一”这篇文章里&#xff0c;首次全面提出了4句真章。 这么多年&#xff0c;最有感触的4句话。 一、4句真章 1、总结使人进步 2、遵循事物的发展规律 3、祸福相依 4、知行合一 …

muduo库中实现Protbuf编码器与消息分发器

文章目录1. protobuf的type name反射机制2. Protobuf编码器2.1 protbuf传输格式2.2 message转换为Buffer2.3 Buffer转换为message2.4 onMessage和send3. 消息分发器dispatcher3.1 成员变量3.2 onProtobufMessage3.3 registerMessageCallback4. 简单RPC4.1 query.proto4.2 serve…

QT:debug日志—打不开头文件以及qDebug和Q_CLASSINFO的使用

这个是因为链接器在给定路径上搜索不到对应的头文件&#xff0c;而大多数的Qt相关的头文件都集中在一个include文件夹里&#xff1a; 我电脑上的路径是&#xff1a;C:\Qt\Qt5.9.7\5.9.7\msvc2017_64\include 然后我们在项目设置里&#xff1a; 注意&#xff0c;这边要加上\*&…

Linux系统配置及服务管理-06-存储管理

基本分区 磁盘简介 磁盘/硬盘/disk是一个东西&#xff0c;不同于内存的是容量比较大。 类型 从工作原理区分 机械 机械硬盘即是传统普通硬盘&#xff0c;主要由&#xff1a;盘片&#xff0c;磁头&#xff0c;盘片转轴及控制电机&#xff0c;磁头控制器&#xff0c;数据转换…

钢材缺陷检测系统-ui界面

钢材缺陷检测系统-ui界面 之前写过这个博客: 工业缺陷检测项目实战(二)——基于深度学习框架yolov5的钢铁表面缺陷检测 里面介绍了使用yolov5进行训练的步骤。今天我们一起学习利用qt将缺陷检测封装为一个系统。 效果 首先看看效果&#xff1a; 我们运行&#xff0c;先可以看…

26岁月薪从7k到17K,这一切都要从那年失业讲起...

女生&#xff0c;目前在成都做了快4年的测试 先来说说我自己是怎么入行的以及我学到的一些经验分享&#xff0c;希望能帮助到更多的朋友们 我大学学的并不是计算机相关专业&#xff0c;学的市场营销&#xff0c;毕业后大部分同学都去做销售或者商务BD了&#xff0c;奈何自己性…

Redis复习笔记

文章目录Redis一、redis入门1.1、NoSQL的引言1.2、为什么是NoSQL1.3、NoSQL的四大分类1.3.1 键值(Key-Value)存储数据库1.3.2 列存储数据库1.3.3 文档型数据库1.3.4 图形(Graph)数据库1.4 NoSQL应用场景1.5 什么是Redis1.6 Redis特点1.7 Redis 安装二、redis数据库相关指令2.1 …

vue-swiper组件化:解决异步请求数据时swiper过早初始化问题:

最初始的swiper组件封装&#xff1a; <body><div id"box"><swiper></swiper></div><script>Vue.component("swiper", {template: <div class"swiper"><div class"swiper-wrapper">…

PC_磁盘HDD_SSD/存储介质(材料工艺)

文章目录外存磁盘存储器组成磁盘驱动器磁盘控制器盘片platter存储区域磁盘结构磁道track道距位密度扇区sector&#x1f388;/块Block&#x1f386;磁头(Head)圆柱面cylinder磁记录原理磁盘性能指标记录密度磁盘的容量非格式化容量格式化容量数据传输率磁盘转速旋转周期T例平均存…

自学网络安全?一般人我还是劝你算了吧

前言 本人纯屌丝一枚&#xff0c;在学网络安全之前对电脑的认知也就只限于上个网&#xff0c;玩个办公软件。这里不能跑题&#xff0c;我为啥说自学网络安全&#xff0c;一般人我还是劝你算了吧。因为我就是那个一般人。 基础真的很简单&#xff0c;是个人稍微认点真都能懂&a…

SpringBoot 常用配置

SpringBoot的配置文件格式 SpringBoot的配置文件支持properties和yml&#xff0c;甚至他还支持json。 更推荐使用yml文件格式&#xff1a; yml文件&#xff0c;会根据换行和缩进帮助咱们管理配置文件所在位置 yml文件&#xff0c;相比properties更轻量级一些 yml文件的劣势&am…

SpringBoot——自定义start场景启动器

需求分析&#xff1a;为什么要学习场景启动器&#xff1f; SpringBoot要引用外部组件&#xff0c;只需要拿到其场景启动器的依赖&#xff0c;再编写一些配置文件即可。 eg:SpringBoot中要使用redis就需要引入redis的场景启动器依赖 <dependency><groupId>org.spri…

Kafka - 05 Kafka生产者| 消息发送方式 | 序列化器 | 分区器 | 拦截器 |生产者配置参数

文章目录1. Java客户端数据生产流程解析2. 消息发送方式3. 序列化器4. 分区器5. 拦截器6. 发送原理剖析7. Kafka生产者参数配置1. Java客户端数据生产流程解析 首先要构造一个 ProducerRecord 对象&#xff0c;该对象可以声明主题Topic、分区Partition、键 Key以及值 Value&…

刷爆力扣之检查数组对是否可以被 k 整除

刷爆力扣之检查数组对是否可以被 k 整除 HELLO&#xff0c;各位看官大大好啊&#xff0c;我是阿呆 &#x1f648;&#x1f648;&#x1f648; 今天开始阿呆将会记录下力扣刷题过程&#xff0c;收录在专栏算法中 &#x1f61c;&#x1f61c;&#x1f61c; 该专栏按照不同类别标…

CPU调度

目录 1.进程调度 1.1 工作负载简化假设 1.2 调度指标&#xff1a;周转时间 1.3 先进先出&#xff08;FIFO&#xff09; 1.4 最短任务优先&#xff08;SJF&#xff09; 1.5 最短完成时间优先&#xff08;STCF&#xff09; 1.6 新度量指标&#xff1a;响应时间 1.7 轮转 …