【代码随想录算法训练营-第六天】【哈希表】242,349,202,1

242.有效的字母异位词

第一遍

  • 思考
    • 比较简单,用数组就能实现了
class Solution {
    public boolean isAnagram(String s, String t) {
        int[] checkListi = new int[256];
        int[] checkListj = new int[256];
        for (int i = 0; i < s.length(); i++) {
            char checkChar = s.charAt(i);
            int i_ascii = checkChar - '0';
            checkListi[i_ascii] += 1;
        }
        for (int j = 0; j < t.length(); j++) {
            char checkChar = t.charAt(j);
            int j_ascii = checkChar - '0';
            checkListj[j_ascii] += 1;
        }
        return Arrays.equals(checkListi, checkListj);
    }
}

349. 两个数组的交集

  • 学习set:看到了一篇大佬的文章讲set相关知识的,很厉害。
  • 学习set转数组:set如何转换为数组

第一遍

  • 思考
    • 题目不难,但重点是掌握和了解set相关的知识,包括list、Hashset、treeset
class Solution {
    public int[] intersection(int[] nums1, int[] nums2) {
        Set<Integer> set1 = new HashSet<>();
        Set<Integer> set2 = new HashSet<>();
        for (int i : nums1) {
            set1.add(i);
        }
        for (int i : nums2) {
            if (set1.contains(i)) {
                set2.add(i);
            }
        }

        return set2.stream().mapToInt(Integer::intValue).toArray();
    }
}

202. 快乐数

第一遍

  • 思考
    • 题目中说了会 无限循环,那么也就是说求和的过程中,sum会重复出现,这对解题很重要!(这一步如果能想出来,才是真的理解题目的,但是我好像是误打误撞了,只是惯性思维觉得应该用set判断是否有重复出现,没有真正读懂题意)
    • 题目的重点还是看到是否有出现过,要学会使用set
    • 难点:如何取出每一位的数值;这一步想了一下,没有过多思考,答案应该有很简单的方法,就直接看了,自己想了5mins没有很好的办法;
class Solution {
    public boolean isHappy(int n) {
            Set<Integer> set1 = new HashSet<>();
            boolean flag = true;
            while (flag) {
                n = sum(n);
                if (n == 1) {
                    return flag;
                }
                flag = set1.add(n);
            }

            return flag;
        }

        public int sum(int n) {
            int result = 0;
            while (n > 0) {
                int mod = n % 10;
                result += mod * mod;
                n /= 10;
            }
            return result;
        }
}

1. 两数之和

第一遍

  • 思考
    • 根据建议,先看了题解,了解到了本题应该使用的思路,了解了一下java相关的map的用法,一遍AC了。
    • 下面两张图片我感觉是我理解题目的中重点,大家可以好好品一品在这里插入图片描述在这里插入图片描述
package HashStructure;

import java.util.*;

public class HashTest {
    public static void main(String[] args) {
        int[] nums1 = {2,7,11,15};
        int target = 9;
        Solution solution = new Solution();
        int[] result = solution.twoSum(nums1, target);
        System.out.println(Arrays.toString(result));
    }

}

class Solution {
    public int[] twoSum(int[] nums, int target) {
        Map<Integer, Integer> map1 = new HashMap<>();
        for (int i = 0; i < nums.length; i++) {
            int findValue = target - nums[i];
            if (map1.containsKey(findValue)) {
                return new int[]{i, map1.get(findValue)};
            } else {
                map1.put(nums[i], i);
            }
        }
        return new int[]{};
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

修改Docker0和容器的地址

修改Docker0和容器的地址 1. 需求 默认服务器安装完Docker-ce后会给docker0分配172.17.0.1/16地址. 公司新接入一个网段正好与172.17.0.1/16冲突,此时访问这台服务器的容器时就会发生网络不可达. 2. 解决方法 修改/etc/docker/daemon.json 加入一个自定义网段 vim /etc/d…

基于单片机的智能小车 (论文+源码)

1. 系统设计 此次可编程智能小车系统的设计系统&#xff0c;结合STM32单片机&#xff0c;蓝牙模块&#xff0c;循迹模块&#xff0c;电机驱动模块来共同完成本次设计&#xff0c;实现小车的循迹避障功能和手机遥控功能&#xff0c;其整体框架如图2.1所示。其中&#xff0c;采用…

剧本杀小程序成为创业者新选择,剧本杀小程序开发

剧本杀作为现下年轻人最喜欢的新兴行业&#xff0c;发展前景非常乐观&#xff0c;即使剧本杀目前处于创新发展阶段&#xff0c;但剧本杀行业依然在快速发展中。 根据业内数据&#xff0c;预计2025年剧本杀市场规模能达到四百多亿元。市场规模的扩大自然也吸引来了不少的创业者…

利用机器学习实现客户细分的实战

前言&#xff1a; Hello大家好&#xff0c;我是Dream。 今天来学习一下机器学习实战中的案例&#xff1a;创建客户细分&#xff0c;在此过程中也会补充很多重要的知识点&#xff0c;欢迎大家一起前来探讨学习~ 一、导入数据 在此项目中&#xff0c;我们使用 UCI 机器学习代码库…

1+X大数据平台运维职业技能等级证书中级

该部分是选择题部分&#xff0c;实操题在主页的另一篇文章 考试名称&#xff1a;“1X”大数据平台运维职业技能等级证书&#xff08;中级&#xff09; 1X 大数据平台运维中级测试题一、单选题 以下哪种情况容易引发 HDFS 负载不均问题&#xff1f;&#xff08; C&#xff09…

定制软件开发的 5 个挑战

对于大公司来说&#xff0c;定制软件开发就像是眼中钉。无论您是要创建内部使用的工具、自动化手动流程还是推出新产品&#xff0c;从头开始构建它历来都是昂贵且危险的。花钱购买领先的现成解决方案之一&#xff0c;却不得不花费更多的时间和金钱对其进行定制来完成工作&#…

绿萝送温暖,扫雪助出行

今冬的大雪如约而至&#xff0c;给居民的出行带来诸多不便&#xff0c;为保障居民安全出行&#xff0c;绿萝志愿服务队第一时间召集志愿者参与扫雪铲冰工作。2023年12月13日&#xff0c;志愿者在房山城关街道青年北路园林所门口、星城生活区等地进行了志愿扫雪活动。 大雪把街道…

SQL自学通之函数 :对数据的进一步处理

目录 一、目标 二、汇总函数 COUNT SUM AVG MAX MIN VARIANCE STDDEV 三、日期/时间函数 ADD_MONTHS LAST_DAY MONTHS_BETWEEN NEW_TIME NEXT_DAY SYSDATE 四、数学函数 ABS CEIL 和FLOOR COS、 COSH 、SIN 、SINH、 TAN、 TANH EXP LN and LOG MOD POW…

为pixhawk4添加外置adis16470传感器

编译驱动 make px4_fmu-v5_default boardconfig在MavLink控制台 adis16470 start -S可以看到IMU3

图像特征提取-角点

角点特征 大多数人都玩过拼图游戏。首先拿到完整图像的碎片&#xff0c;然后把这些碎片以正确的方式排列起来从而重建这幅图像。如果把拼图游戏的原理写成计算机程序&#xff0c;那计算机就也会玩拼图游戏了。 在拼图时&#xff0c;我们要寻找一些唯一的特征&#xff0c;这些…

MCU平台下一种简单的文件系统设计构想

本文介绍MCU平台下一种简单的文件系统设计构想。 在使用MCU的项目中&#xff0c;经常会涉及到一些数据的存储&#xff0c;受限于硬件&#xff0c;又不太可能直接上文件系统&#xff08;如FAT文件系统&#xff09;&#xff0c;直接指定存储地址&#xff0c;数据长度对数据进行读…

HDPE硅芯管强度高,抗压抗张和抗冲击强,外层不需其它套管

HDPE硅芯管是一种高性能的管道材料&#xff0c;具有强度高、抗压抗张和抗冲击强的特点。这种管道材料采用高密度聚乙烯&#xff08;HDPE&#xff09;作为基础材料&#xff0c;并添加了硅质增强剂&#xff0c;使得管道具有优异的力学性能和耐久性。 HDPE硅芯管的强度高&#xf…

大数据CloudSim应用实践

CloudSimExampleA.java 1准备 1.1操作系统 本实验在Windows 7 或Windows 10系统运行均可。 1.2软件 cloudsim-3.0.3.zip&#xff1b; commons-math3-3.2-bin.zip&#xff1b; jdk-8u152-windows-x64.exe&#xff1b; eclipse-jee-neon-3-win32-x86_64 所需资料链接&#xff1…

现代雷达车载应用——第2章 汽车雷达系统原理 2.3节 信号模型

经典著作&#xff0c;值得一读&#xff0c;英文原版下载链接【免费】ModernRadarforAutomotiveApplications资源-CSDN文库。 2.3 信号模型 雷达的发射机通常发出精心设计和定义明确的信号。然而&#xff0c;接收到的返回信号是多个分量的叠加&#xff0c;包括目标的反射、杂波…

大数据存储技术(1)—— Hadoop简介及安装配置

目录 一、Hadoop简介 &#xff08;一&#xff09;概念 &#xff08;二&#xff09;Hadoop发展历史 &#xff08;三&#xff09;Hadoop三大发行版本 &#xff08;四&#xff09;Hadoop的优势 二、Hadoop的组成 &#xff08;一&#xff09;Hadoop1.x和Hadoop2.x的区别​…

打印机怎么扫描文件到电脑?6个步骤!轻松完成!

“在工作时我经常需要用到打印机&#xff0c;有时候需要将部分文件扫描到电脑。但是我不是很清楚应该如何操作&#xff0c;有什么方法可以让打印机快速传输文件到电脑的方法吗&#xff1f;” 在人们的工作和学习中&#xff0c;打印机成了很多用户的必备工具。人们可以用它来打印…

vue 图片等比例缩放上传

需求&#xff1a;上传图片之前按比例缩小图片分辨率&#xff0c;宽高不超过1920不处理图片&#xff0c;宽高超过1920则缩小图片分辨率&#xff0c;如果是一张图片请参考这篇博客&#xff1a;js实现图片压缩、分辨率等比例缩放 我根据这篇博主的分享&#xff0c;写下了我的循环上…

设计模式之开篇

在软件开发的世界里&#xff0c;设计模式有如一本精妙的工程艺术指导准则&#xff0c;为我们提供了解决常见问题的优雅实现方案。然而&#xff0c;有些程序员可能会认为设计模式太过繁琐&#xff0c;一个简单的 if/else 语句就能解决问题&#xff0c;何必费心去学习这些看似复杂…

JVM对象创建与内存分配机制分析

对象的创建 对象创建的主要流程: 1.类加载检查 虚拟机遇到一条new指令时&#xff0c;首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用&#xff0c;并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有&#xff0c;那必须先执行相应的类加…

易基因:动脉粥样硬化中的DNA甲基化和组蛋白修饰及其表观遗传治疗视角|综述

大家好&#xff0c;这里是专注表观组学十余年&#xff0c;领跑多组学科研服务的易基因。 动脉粥样硬化&#xff08;Atherosclerosis, as&#xff09;是一种以动脉血管壁炎症和斑块积聚为特征的血管病变&#xff0c;是大多数心血管疾病的重要病因。除了脂质沉积和慢性炎症外&am…