代码随想录day6

代码随想录算法训练营Day6 | Leetcode 454四数相加II、383赎金信、15三数之和、18四数之和 Leetcode454四数相加II、383赎金信、15三数之和、18四数之和解题思路与技巧、代码 阅读详情

 哈希表理论基础

哈希表也称散列表也在我写过的数据结构那里有所说明

当我们想使用哈希法来解决问题的时候,我们一般会选择如下三种数据结构。

  • 数组
  • set (集合)
  • map(映射)

当我们想使用哈希法来解决问题时,选择的数据结构通常取决于具体的问题需求:

  • 数组:适用于需要有序存储和快速随机访问的情况。但是,数组的大小通常是固定的,而且查找特定元素的时间复杂度依赖于数组是否排序。

  • Set(集合):如HashSet,适用于需要存储唯一元素且不需要维护任何特定顺序的情况。在Java中,除了HashSet,还有TreeSet(基于红黑树实现,可以保证元素排序)和LinkedHashSet(基于哈希表和链表实现,可以保证元素的插入顺序)。

  • Map(映射):如HashMap,适用于需要通过键(key)来查找值(value)的情况。Map提供了从唯一键到值的映射,非常适合用来建立索引或者关联不同类型的信息。

HashSet

HashSet 基于 HashMap 来实现的,是一个不允许有重复元素的集合。

HashSet 允许有 null 值。

HashSet 是无序的,即不会记录插入的顺序。

HashMap

HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。

HashMap 实现了 Map 接口,根据键的 HashCode 值存储数据,具有很快的访问速度,最多允许一条记录的键为 null,不支持线程同步。

HashMap 是无序的,即不会记录插入的顺序。

两者区别

HashSet与HashMap的主要区别在于:

  • Key和Value的使用:HashMap存储键值对(key-value pairs),其中键(key)是唯一的,而值(value)可以重复。HashSet只存储元素(可以看作是键,没有对应的值),并且所有元素都是唯一的。

  • 数据结构:虽然两者都基于哈希表,但是HashMap存储的是键值对,因此每个条目都包含一个键和一个值。而HashSet的每个条目只包含一个值,这个值同时也作为键使用。

  • 接口实现:HashMap实现了Map接口,而HashSet实现了Set

卡哥提示

什么时候想到用哈希法,当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考

虑哈希法。 这句话很重要,大家在做哈希表题目都要思考这句话。

 242.有效的字母异位词

思路

由于在ASCCII中,一个字母对应一个数值,建立一个哈希数组,在数组里存储第一个字符串中各个字母出现的次数,再用第二个字符串对应减掉数组的数值,若全为零,则说明两个字符串字母出现的频率相同。

在范围较小的时候用数组,若较大用set,需要key值对应用map

class Solution {
    public boolean isAnagram(String s, String t) {
        int[] hash=new int[26];
        for(int i=0;i<s.length();i++){
            hash[s.charAt(i)-'a']++;//-'a':是利用字符串中字母与a的差值,因为这些差值是固定的,++是记录个数
                        
        }
        for(int i=0;i<t.length();i++){
            hash[t.charAt(i)-'a']--;
        }
         for (int count: hash) {
            if (count != 0)               // record数组如果有的元素不为零0,说明字符串s和t 一定是谁多了字符或者谁少了字符。
                return false;
            }
        return true;
    }
}

语法补充--增强for循环

1    for (dataType variableName :collectionOrArray) {
2    // 循环体
3}

这里的dataType应该是你期望从集合或数组中取出的元素类型,variableName是你为每次迭代中取出的元素定义的变量名,而collectionOrArray是你想要遍历的数组或集合。

当执行这段代码时,循环会按照以下步骤进行:

  1. 初始化:循环开始前,首先检查collectionOrArray是否为空。如果是空的,循环将不会执行任何迭代并直接结束。

  2. 获取下一个元素:在每次迭代开始时,循环会从collectionOrArray中获取下一个元素,并将其赋值给variableName。

  3. 执行循环体:一旦元素被赋值,循环体内的代码就会被执行。你可以在循环体内对元素进行任何操作,比如打印、修改等。

  4. 检查终止条件:在执行完一次循环体后,循环会检查是否还有更多的元素可供迭代。如果没有更多元素,循环结束;如果有,回到步骤2继续下一次迭代。

349. 两个数组的交集 

import java.util.HashSet;
import java.util.Set;

class Solution {
    public int[] intersection(int[] nums1, int[] nums2) {
        if (nums1 == null || nums1.length == 0 || nums2 == null || nums2.length == 0) {
            return new int[0];
        }
        Set<Integer> set1 = new HashSet<>();
        Set<Integer> resSet = new HashSet<>();
        //遍历数组1
        for (int i : nums1) {
            set1.add(i);
        }
        //遍历数组2的过程中判断哈希表中是否存在该元素
        for (int i : nums2) {
            if (set1.contains(i)) {
                resSet.add(i);
            }
        }
      
        //方法1:将结果集合转为数组

        return resSet.stream().mapToInt(x -> x).toArray();
        
        //方法2:另外申请一个数组存放setRes中的元素,最后返回数组
        int[] arr = new int[resSet.size()];
        int j = 0;
        for(int i : resSet){
            arr[j++] = i;
        }
        
        return arr;
    }
}

202. 快乐数

class Solution {
    public boolean isHappy(int n) {
        Set<Integer> record = new HashSet<>();
        while (n != 1 && !record.contains(n)) {
            record.add(n);
            n = getNextNumber(n);
        }
        return n == 1;
    }

    private int getNextNumber(int n) {
        int res = 0;
        //各个位上数的操作
        while (n > 0) {
            int temp = n % 10;
            res += temp * temp;
            n = n / 10;//推进循环
        }
        return res;
    }
}

1. 两数之和

思路

由于得到target的值组合会有多种,所以不能用简单的两层循环、

先遍历一遍数组,同时判断该数值是否之前出现过,还有与其相匹配的值是否遍历过,位置在哪

需要存储元素的值和下标,所以要用Map

那值和下标谁是key、谁是value

这时就要想清楚查找的是谁,在Java的HashMap类中,我们可以使用 get(key) 方法来获取 key 对应的 value,由题意可知应该是通过知道符合匹配条件的值,来找到对应下标,所以key是值,value是下标

class Solution {
    public int[] twoSum(int[] nums, int target) {
        int[] res = new int[2];
    if(nums == null || nums.length == 0){
        return res;
    }
    Map<Integer, Integer> map = new HashMap<>();
    for(int i = 0; i < nums.length; i++){
        int temp = target - nums[i];   // 遍历当前元素,并在map中寻找是否有匹配的key
        if(map.containsKey(temp)){
            res[1] = i;
            res[0] = map.get(temp);
            break;
        }
        map.put(nums[i], i);    // 如果没找到匹配对,就把访问过的元素和下标加入到map中
    }
    return res;
    }
}

python基础语法与数据结构 本文摘要: Python基础语法包含输入输出、函数、变量、数据类型及运算符等内容。输入函数input()获取键盘输入并以字符串存储,输出函数print()可格式化输出数据。函数通过def定义,可带参数和返回值,提高代码复用性。变量无需声明类型,可动态赋值。数据类型包括数字、字符串、布尔及复合类型,可通过type()查看。运算符包含算术、赋值等类型,其中复合赋值运算符如+=可简化运算。类型转换函数如int()、str()等可实现显式类型转换。这些基础语法构成Python编程的核心要素。 阅读详情

相关推荐

终端效率神器:Tmux 安装与使用全指南

终端效率神器:Tmux 安装与使用全指南

身在被窝_心在编程 1360

网站收藏箱

文章内容都是笔者日常工作与学习接触到,并且觉得不错的网站,特收录在册,欢迎广大读者提供补充,文章会持续更新

沉梦听雨的博客 1万+

奥顺居PHP测算引流SEO程序_八字风水_起名解梦_星座生肖综合门户源码

奥顺居PHP测算引流SEO程序_八字风水_起名解梦_星座生肖综合门户源码 S30新框架适合多种奥顺插件。

xl1407的博客 1752

算法速成之代码随想录

有些同学想要学习算法题,但是时间很紧,自己的基础也不是很好,想要在空余时间完全掌握所有算法题确实有点不切实际了,终于去学习了遇到难题又半途而废,于是我总结了一下刷代码随想录题目的方法先看b站视频:BV1fA4y1o715,有规划的看,每一类题可以看一到两道,看完去做题,感觉基本了解了就可以直接看代码随录博客的题目跟着做,因为看视频较为费时间,博客中的注释非常详细;写题时候,,实在无从下手就他的,看完应该都能自己写了,如果连思路都看不懂,那么就求助gpt或者去看他的视频;每周写题也要有一定的规划,

qq_63728673的博客 7033

记录Nvidia AGX Orin的配置日常(二)设置上电自动开机和远程桌面

因为要拿AGX作为机器人的主控板,所以需要给他设置一下通电后无需按电源键就自动开机,然后再配置一下远程桌面。

AutomaticForever的博客 1361

【Matlab深度学习】GPU加速实战:从环境配置到性能优化

本文详细介绍了如何在Matlab中为深度学习任务配置GPU加速环境并进行性能优化。文章从GPU加速的必要性讲起,手把手指导安装NVIDIA驱动、CUDA和cuDNN核心三件套,并验证环境。重点讲解了如何利用gpuArray将数据和模型迁移至GPU,以及通过内存优化、计算优化和多GPU并行等策略充分释放GPU算力,大幅缩短深度学习模型的训练时间。

weixin_29061465的博客 492

代码随想录刷题笔记 (python版本) 持续更新.....

代码随想录刷题笔记

hello world 1万+

试读源码在这里下载

试读文章的源码在这里下载。源码不做任何修改,重点重点重点:为了代码运行不报错,安装matlab 版本为 2021 及以上版本。matlab安装教程大家可以参考这个教程:手把手教你安装matlab软件。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 4302

【leetcode刷题总结】——代码随想录(链表总结)

什么是链表,链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,一个是数据域一个是指针域(存放指向下一个节点的指针),最后一个节点的指针域指向null(空指针的意思)。

lingxw的博客 4942

手把手教你ensp仿真搭建校园网(含防火墙及无线网络)系列(三)校园无线网络AC+AP配置

本系列博客将带你从零开始,使用 华为 eNSP(Enterprise Network Simulation Platform) 仿真搭建一个完整的校园网络,涵盖 核心层、汇聚层、接入层、防火墙安全策略、无线AC+AP组网 等实战场景。无论你是网络初学者还是希望深化实战经验的工程师,都能通过本教程掌握企业级网络的规划、配置与排错技巧。

echo的博客 1360

uniapp+google map不显示

uniapp+renderJS+google map开发安卓版APP非小程序,google map小叉号不显示,google map自定义marker右上角的小叉号如何去掉,uniapp+google map不显示

renkai721的专栏 527

LeetCode代码随想录

代码随想录 (programmercarl.com) java 35.搜索插入位置 34.在排序数组中查找元素的第一个和最后一个位置 java 69.X的平方根 java java 27移除元素 c++ java 283.移动零 java 844.比较含退格的字符串 java:双指针版 java:栈版 97.有序数组的平方 c++ java

死也不承认自己笨的博客 2634

车载以太网-TC8测试

TC8测试的用例数量 TC8测试基本流程 TC8测试内容

天赐好车的博客 3618

代码随想录Day6

拿这个nums数组来举例,首先将数组排序,然后有一层for循环,i从下标0的地方开始,同时定一个下标left 定义在i+1的位置上,定义下标right 在数组结尾的位置上。依然还是在数组中找到 abc 使得a + b +c =0,我们这里相当于 a = nums[i],b = nums[left],c = nums[right]。

HNTZB的博客 1100

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

代码随想录训练营Day6

/遍历数组2的过程中判断哈希表中是否存在该元素。242.有效的字母异位词。349. 两个数组的交集。

z1414758992的博客 445

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

代码随想录训练Day6[哈希表]

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。思路:先定义一个结果数组[26](因为只有小写字母),遍历第一个字符串,用字母 - ‘a’ 当作索引,如果有将num++;遍历第二个数组,如果有就num–;最后遍历数组,如果有一个不是0,则为false。

2302_77073920的博客 191

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

代码随想录刷题day6

感悟:利用一个哈希表记录每个字符出现的次数,因本题只涉及26个字母,数量比较有限,所以考虑用数组代替哈希表。感悟:和上一题三数之和类似,使用双指针技巧,降低时间复杂度。感悟:本题适合用双指针技巧,且去重过程的细节需要好好琢磨。请你找出并返回满足下述全部条件且。答案中不可以包含重复的三元组。,请你计算有多少个元组。,判断是否存在三元组。

LL_xjbt的博客 343

代码随想录跟刷Day6.哈希表

如果出现之前出现过的数字说明会进入无限循环,这是一个马尔科夫链,下一个状态只与本状态有关,检查这个马尔科夫链是不是环路即可。unordered_set也可以通过迭代器传递方法去遍历。

gmail_82410的博客 279

Day6 代码随想录 刷题记录

最后写的同时移动的判断逻辑写得有些问题,循环条件应该是while其中的某个指针不为NULL,终止的判断条件应该是p == q,而不是p!找第一个入环的结点,是在遍历的时候的第一个重复出现的结点。3.分析出快慢指针的关系,当它们第一次相遇的时候的位置 与从head起点出发的位置 移动相同的距离 可以得到环的入环位置。将A链与B链分别移动到各自的链表的末尾,记录各自链表的长度,在此基础上两者长度相减的值即两者的长度差。if包住下面的while判断代表这是函数找到的第一个相遇的点,1.快慢指针的相对运动。

windyyyyyyyyyyy的博客 359

代码随想录算法训练营Day6

用一个长度为26的数组还记录magazine里字母出现的次数,然后再用ransomNote去验证这个数组是否包含了ransomNote所需要的所有字母。在遍历C和D数组,如果找到 0-(c+d) 在map中出现过的话,就用count把map中key对应的value也就是出现次数统计出来。首先定义 一个Hashmap,key放a和b两数之和,value 放a和b两数之和出现的次数。遍历A和B数组,统计两个数组元素之和key,和出现的次数value,放到map中。需要注意的是去重逻辑与操作。

Nruonan的博客 97

代码随想录算法训练营day6(字符串)

【代码】代码随想录算法训练营day6(字符串)

huaz_md的博客 375

代码随想录算法训练营day6

今天是算法营的第6天,希望自己能够坚持下来!今日任务:● 哈希表理论基础● 242.有效的字母异位词● 349. 两个数组的交集● 202. 快乐数● 1. 两数之和今天主要是学习了哈希表的用法。需要观察题目,是否可以转化为“元素是否出现过”的问题,就可以使用哈希表。一般是用三种数据结构:1.数组,适合数据连续,或者是数据量比较小的时候。2.set,适合数据量较大,非连续的数据。3.map,适合需要存放两个信息。明天继续加油!

qq_38365428的博客 807

代码随想录|day 6

做了一些改进的尝试,嘻嘻。说明:此篇为阅读学习刷题notes,参考内容均标注链接。2.

donge520的博客 1129

代码随想录算法-day6

最近比较忙,作业拉下好多,要加紧补上!题目链接/文章讲解/视频讲解。

qq_46147058的博客 942

代码随想录 day6

建议:本题就开始考虑 什么时候用set 什么时候用数组,本题其实是使用set的好题,但是后来力扣改了题目描述和 测试用例,添加了 0 <= nums1[i], nums2[i] <= 1000 条件,所以使用数组也可以了,不过建议大家忽略这个条件。建议:本题虽然是 力扣第一题,但是还是挺难的,也是 代码随想录中 数组,set之后,使用map解决哈希问题的第一题。建议:大家要了解哈希表的内部实现原理,哈希函数,哈希碰撞,以及常见哈希表的区别,数组,set 和map。什么时候想到用哈希法,

weixin_45549711的博客 824
上一篇: 代码随想录day4(环形链表是根硬骨头)
下一篇: 代码随想录day7
cookieeee_
博客等级 码龄4年 189粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值