首页 > 其他分享 >代码随想录 day6 哈希表

代码随想录 day6 哈希表

时间:2024-04-09 12:33:15浏览次数:20  
标签:set nums day6 随想录 iter vector 哈希 nums1

题目:

P242有效的字母异位数,P349两个数组的交集,P202快乐数,P1两数之和

收获:

1.使用数组,集合(set,主要是unorder_set,无序,无重复)做哈希表。哈希表一般用来快速判断一个元素是否出现在集合里。

2.unorder_set的用法。

class Solution {
public:
    vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {
        unordered_set<int> result_set;
//将nums1的值赋值给nums_set
        unordered_set<int> nums_set(nums1.begin(),nums1.end());
        for(int i=0;i<nums2.size();i++){
            int num=nums2[i];
//nums_set.find()返回一个迭代器(好像和指针差不多),nums_set.edn()同样。
//nums_set.end()指向容器最后一个元素的下一个位置。这行代码意思是如果找到了num,
//就把num插入到result_set中。
            if(nums_set.find(num)!=nums_set.end())
            result_set.insert(num);
        }
//注意类型转换成vector
        return vector<int>(result_set.begin(),result_set.end());
    }
};

3.复习一下获取一个整数每个位置上值的方法。

int n;
cin>>n;

while(n){
cout<<n%10;//
n/=10;
}

4.学习了解了unordered_map的用法。

auto iter=map.find(nums[i]);//iter是指向map中与nums[i]值相同的值的迭代器

iter->first//表示iter指向的位置的key的值。

iter->second//表示iter指向位置的value的值。

pair<int,int>(2,3)//pair是c++标准库中定义的数据结构,表示一个由两个值组成的一个对
//其中int类型可以根据需要替换成其他类型

pair存储一个对,key和value。

标签:set,nums,day6,随想录,iter,vector,哈希,nums1
From: https://blog.csdn.net/m0_73924943/article/details/137527003

相关文章

  • 哈希表自记录
    存储结构:1.开放寻址法#include<cstring>#include<iostream>usingnamespacestd;constintN=2000003,null=0x3f3f3f3f;inth[N];intn;intfind(intx){intk=(x%N+N)%N;//蹲坑法while(h[k]!=null&&h[k]!=x){k++;......
  • 19天【代码随想录算法训练营34期】第六章 二叉树 part06(● 654.最大二叉树 ● 617.合
    654.最大二叉树#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,val=0,left=None,right=None):#self.val=val#self.left=left#self.right=rightclassSolution:defconstructMaximumBinaryTree(s......
  • 字符串哈希板子
    #include<iostream>#include<cstring>#defineMAX_SIZE100usingnamespacestd;classStringHash{public:intsize;char*array;char*array_forward;unsignedlonglong*pre_base;unsignedlonglong*hash_array;uns......
  • PHP代码审计——Day6-Frost Pattern
    漏洞解析classTokenStorage{publicfunctionperformAction($action,$data){switch($action){case'create':$this->createToken($data);break;case'delete':......
  • 代码随想录(Day 3)
    今日任务1.移除链表元素2.设计链表3.翻转链表1.移除链表元素LeetCode链接链表经典操作,对于原理不过多解释,主要探讨建立虚拟头结点和不建立虚拟头结点的区别。对于链表操作时,大多数参考书上都给出头结点不需要带数据,这样做是有道理的。因为在链表中,我们涉及到链表的操作......
  • 如何在 Node.js 中使用 bcrypt 对密码进行哈希处理
    在网页开发领域中,安全性至关重要,特别是涉及到用户凭据如密码时。在网页开发中至关重要的一个安全程序是密码哈希处理。密码哈希处理确保明文密码在数据库受到攻击时也难以被攻击者找到。但并非所有的哈希方法都是一样的,这就是bcrypt突出之处所在。Node.js是一个流行的用于开......
  • 18天【代码随想录算法训练营34期】● 513.找树左下角的值 ● 112. 路径总和 113.路径
    513.找树左下角的值#Definitionforabinarytreenode.#classTreeNode:#def__init__(self,val=0,left=None,right=None):#self.val=val#self.left=left#self.right=rightclassSolution:deffindBottomLeftValue(self......
  • 代码随想录算法训练营Day13|239滑动窗口最大值 347前k个高频元素
    学习了Carl的视频今日任务 239. 滑动窗口最大值 (一刷至少需要理解思路)之前讲的都是栈的应用,这次该是队列的应用了。本题算比较有难度的,需要自己去构造单调队列,建议先看视频来理解。 题目链接/文章讲解/视频讲解:代码随想录 347.前 K 个高频元素 (一刷至少需要理......
  • 一致性哈希
    一致性哈希  一、什么是一致性哈希  一致性哈希是一种用于分布式系统中数据分片和负载均衡的算法。它的核心思想是将数据和节点通过哈希函数映射到一个固定范围的环形空间中,每个节点在环上占据一个位置,而数据则根据哈希函数计算出的值映射到环上的某个位置上。目前主要应......
  • P3396 哈希冲突
    原题链接题解正常暴力解法如下:#include<bits/stdc++.h>usingnamespacestd;inta[150007];intmain(){intn,m;cin>>n>>m;for(inti=1;i<=n;i++)cin>>a[i];while(m--){charop;cin>>op;i......