首页 > 编程语言 >算法面试通关40讲 - 哈希表/映射

算法面试通关40讲 - 哈希表/映射

时间:2024-03-11 11:12:25浏览次数:23  
标签:nums back 40 vector 哈希 indices 通关 itr left

1. 两数之和
#include <iostream>
#include <unordered_map>
using namespace std;
class Solution {
public:
  vector<int> twoSum(vector<int> &nums, int target) {
    vector<int> indices;
    unordered_map<int, decltype(nums.size())> left; // val -> index
    for (decltype(nums.size()) i = 0; i < nums.size(); ++i) {
      auto itr = left.find(target - nums[i]);
      if (itr == left.end()) {
        left[nums[i]] = i;
      } else {
        indices.push_back(itr->second);
        indices.push_back(i);
        break;
      }
    }
    return indices;
  }
};

标签:nums,back,40,vector,哈希,indices,通关,itr,left
From: https://www.cnblogs.com/qqiwei/p/18065659

相关文章

  • 20240310-日记(包含0306-0309)
    为了证明0306号那天我是真准备写的。今天仍然是无所事事的一天,好像因为起得越来越晚,对象颇有微词了。昨天猫又在房间里跑酷,其实也算没怎么睡好。也是今天突然得知,入宅又变更到周五凌晨了。0307因为昨天刚得知还需要周五凌晨入住宅,所以对象的爹从老家赶过来,是晚上十点四十到......
  • ARM MMU和cache简介 --20240310
    参考博客:与程序员相关的CPU缓存知识MMU:memorymanagementunit,称为内存管理单元,或者是存储器管理单元,MMU是硬件设备,它被保存在主存(mainmemory)的两级也表控制,并且是由协处理器CP15的寄存器1的M位来决定是enabled还是disabled。MMU的主要作用是负责从CPU内核发出的虚拟地址到物......
  • cache操作函数 --20240310
    Baremetal不讨论多级cache的情况下,裸驱两种关于dcache的操作:flush_dcache_all();//将cache里面的东西刷入内存invalidate_dcache_all();//将数据缓存中的所有内容无效化(invalidate)。该指令一般用于确保缓存中的数据与主内存中的数据同步flush_dcache_all()函数通常在嵌入......
  • RIPEMD算法:多功能哈希算法的瑰宝
    一、RIPEMD算法的起源与历程RIPEMD(RACEIntegrityPrimitivesEvaluationMessageDigest)算法是由欧洲研究项目RACE发起,由HansDobbertin、AntoonBosselaers和VincentRijmen共同设计的一种哈希算法。RIPEMD算法最早发布于1996年,旨在提供一种安全、高效的数据完整性验证工具。......
  • printf函数与缓冲区 --20240310
    在linux下,printf输出到控制台经历了app->libc(stdio.h)->syscall->console驱动 下面是<<linux内核完全注释>>一书中的一段描述:继续看下write函数的实现:以下是write()函数的基本定义:#include<unistd.h>ssize_twrite(intfd,constvoid*buf,size_tcount);//ssize_t......
  • 共用体与位域 --20240310
    共用体共用体(Union)是一种特殊的数据类型,它允许在同一个内存位置存储不同的数据类型。共用体的所有成员共享同一块内存空间,因此同一时间只能存储其中一个成员的值。共用体的定义和结构体类似,使用关键字union,后面跟着成员列表。每个成员可以是不同的数据类型,但共用体的所有成员都......
  • 内存屏障 --20240310
    内存屏障(MemoryBarrier)是一种硬件或软件机制,用于协调并发访问共享资源时的数据一致性。它可以控制处理器和缓存对内存操作的顺序和时序,从而确保共享变量的读写操作按照预期方式进行。 在多线程或多核处理器系统中,为了避免竞态条件(RaceCondition)等问题,常常需要使用内存屏障来......
  • 位运算 --20240310
    位运算在linux内核或裸驱中使用十分常见,下面是两种使用方式在此记录: 对寄存器进行操作:举个例子,1、清除bit8-bit10,并将bit8-bit10设置为0x2reg=(reg&(~(0x7<<8))|(0x2<<8));2、将bit4置一和置零reg=(reg&(~(0x1<<4)))|(0x0<<4);//bit4置零reg=......
  • 在Java中,HashMap中是用哪些方法来解决哈希冲突的?
    HashMap中调用hashCode()方法来计算hashCode。由于在Java中两个不同的对象可能有一样的hashCode,所以不同的键可能有一样hashCode,从而导致冲突的产生。采用链地址法解决冲突。HashMap底层是数组+链表+红黑树(JDK1.8)来实现的,根据key的hash值查找对应的位桶。1.当前索引数组为空,则......
  • 代码随想录 第17天 | ● 110.平衡二叉树 ● 257. 二叉树的所有路径 ● 404.左叶子之
    leetcode:110.平衡二叉树-力扣(LeetCode)classSolution{publicbooleanisBalanced(TreeNoderoot){returngetblan(root)!=-1;}privateintgetblan(TreeNoderoot){//为空退出if(root==null)return0;//左节......