数据结构 之 哈希表习题 力扣oj(附加思路版)

哈希表用法

哈希表:键 值对

键:可以看成数组下标,但是哈希表中的建可以是任意类型的,建不能重复,可以不是连续的

值:可以看成数组中的元素,值可以重复,也可以是任意类型的数据

#include<iostream>
#include<unordered_map> //无序哈希,
//在哈希表中不一定按照你输入的顺序存储的,是随机存储的但是每次输出的顺序不随机都是一致的
#include<map>  //有序哈希:默认按照键从小到大存储using namespace std;int main()
{unordered_map<int, int> u_map;u_map[9]++; //可以使用这种方式计数//find() ,find函数的返回值是迭代器,参数是key,//如果哈希表中存在键值为key的键值对,返回指向这个键值对的迭代器,否则返回和end()一样的迭代器if (u_map.find(79) != u_map.end()){cout << "找到了" << endl;}else{cout << "没找到" << endl;}return 0;
}

两数之和 

1. 两数之和icon-default.png?t=N7T8https://leetcode.cn/problems/two-sum/

        给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target  的那 两个 整数,并返回它们的数组下标。

        你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。

        你可以按任意顺序返回答案。

首先创建一个哈希表,利用哈希表的性质键值对解决本题目。利用find函数寻找数组中元素1与target-数组中元素2是否有相等的值。如果相等返回哈希表的键值。

class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {map<int,int>m;for(int i=0;i<nums.size();i++){if(m.find(target-nums[i])!=m.end())return {m[target-nums[i]],i};elsem[nums[i]]=i;}return {};}
};

重复元素 

217. 存在重复元素icon-default.png?t=N7T8https://leetcode.cn/problems/contains-duplicate/

        给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。

利用哈希表[ ]计数 

class Solution {
public:bool containsDuplicate(vector<int>& nums) {map<int,int>m;for(int i=0;i<nums.size();i++){m[nums[i]]++;if(m[nums[i]]>=2)return true;}return false;}
};

219. 存在重复元素 IIicon-default.png?t=N7T8https://leetcode.cn/problems/contains-duplicate-ii/

        给你一个整数数组 nums 和一个整数 k ,判断数组中是否存在两个 不同的索引 i 和 j ,满足 nums[i] == nums[j] 且 abs(i - j) <= k 。如果存在,返回 true ;否则,返回 false 。

class Solution {
public:bool containsNearbyDuplicate(vector<int>& nums, int k) {map<int,int>m;for(int i=0;i<nums.size();i++){if(m.find(nums[i])!=m.end() && i-m[nums[i]]<=k)return true;elsem[nums[i]]=i;}return false;}
};

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

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

相关文章

R语言程序设计(零基础速通R语言语法和常见函数的使用)

目录 1.Rstudio中的一些快捷键 2.R对象的属性 3.R语言中常用的运算符​编辑 4.R的数据结构 向量 如何建立向量&#xff1f; 如何从向量里面提取元素&#xff1f; 矩阵 如何建立矩阵&#xff1f; 如何从矩阵里面提取元素&#xff1f; 数据框 如何建立数据框&#xf…

python-pandas基础学习

可参考&#xff1a; pandas&#xff1a;http://pandas.pydata.org/docs/user_guide/10min.html 一、基础知识 DataFrame 方法&#xff0c;可以将一组数据&#xff08;ndarray、series, map, list, dict 等类型&#xff09;转化为表格型数据 import pandas as pd data {name: …

前端三件套 | 综合练习:模拟抽奖活动,实现一个简单的随机抽取并显示三名获胜者

随机运行结果如下&#xff1a; 参考代码如下&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><tit…

鸿蒙-自定义组件-语法

目录 语法组成 在学习自定义组件前&#xff0c;先看一下ArkTS的组成 装饰器 用于装饰类、结构、方法以及变量&#xff0c;并赋予其特殊的含义。如上述示例中Entry、Component和State都是装饰器 Entry 表示该自定义组件为入口组件 Component 表示自定义组件 State 表示组…

python基础——字符串的常见操作方法【下标索引,index,count,len,replace,split,strip】

&#x1f4dd;前言&#xff1a; 字符串是一种有序的&#xff0c;允许重复字符串存在的&#xff0c;不可修改的序列 这篇文章主要总结一下python中有关字符串的部分相关知识&#xff0c;以及字符串的常见操作方法&#xff1a; 1&#xff0c;和其他序列极其类似的操作方法 2&…

2024/03/18(网络编程·day4)

一、思维导图 二、广播 广播发送端 #include<myhead.h> int main(int argc, const char *argv[]) {//1、创建套接字int sfd socket(AF_INET,SOCK_DGRAM,0);if(sfd -1){perror("socket error");return -1;}//2、设置允许广播int broadcast 1;if(setsockopt…

Lua中文语言编程源码-第七节,更改lstrlib.c 标准字符串操作与模式匹配库函数, 使Lua加载中文库关键词(标准字符串操作与模式匹配库相关)

源码已经更新在CSDN的码库里&#xff1a; git clone https://gitcode.com/funsion/CLua.git在src文件夹下的lstrlib.c 标准字符串操作与模式匹配库函数&#xff0c;表明这个C源文件实现了Lua的标准字符串操作与模式匹配库&#xff0c;即提供了与字符串操作相关的API和功能实现…

分享一些程序员相关的网址

0️⃣【#电子书】 Zlibrary&#xff08; https://1lib.us/&#xff09;是个电子书网站&#xff0c;可以搜到很多很多电子书&#xff0c;不管是中文还是英文原版。 1️⃣【#软件设计】如果你想了解一些软件技术&#xff0c;这里有个网站可以帮到你 - http://aosabook.org/ 。这…

嵌入式DSP教学实验箱操作教程:2-20 数模转换实验(模拟SPI总线输出电压值)

一、实验目的 掌握GPIO模拟SPI总线的使用&#xff0c;了解AD5724的芯片特性和使用&#xff0c;并实现基于AD5724输出电压值。 二、实验原理 StarterWare StarterWare是一个免费的软件开发包&#xff0c;它包含了示例应用程序。StarterWare提供了一套完整的GPIO寄存器配置接…

在吗?腾讯云服务器2024降价了61元一年,要么?

腾讯云服务器多少钱一年&#xff1f;61元一年起。2024年最新腾讯云服务器优惠价格表&#xff0c;腾讯云轻量2核2G3M服务器61元一年、2核2G4M服务器99元一年可买三年、2核4G5M服务器165元一年、3年756元、轻量4核8M12M服务器646元15个月、4核16G10M配置32元1个月、312元一年、8核…

QT C++ QButtonGroup应用

//QT 中&#xff0c;按钮数量比较少&#xff0c;可以分别用各按钮的信号和槽处理。 //当按钮数量较多时&#xff0c;用QButtonGroup可以实现共用一个槽函数&#xff0c;批量处理&#xff0c;减少垃圾代码&#xff0c; //减少出错。 //开发平台&#xff1a;win10QT6.2.4 MSVC…

常用数据结构与算法—数组

二分查找&#xff08;#704&#xff09; 给定一个 n 个元素有序的&#xff08;升序&#xff09;整型数组 nums 和一个目标值 target &#xff0c;写一个函数搜索 nums 中的 target&#xff0c;如果目标值存在返回下标&#xff0c;否则返回 -1。 定义左闭右开区间 // 版本二 c…

Linux修改Coredump文件位置及文件名

参考自gdb调试coredump(使用篇)_gdb解core查看所有进程-CSDN博客 默认情况下&#xff0c;/proc/sys/kernel/core_pattern的值为core&#xff0c;即默认情况下当需要生成coredump时&#xff0c;会在二进制文件所在的目录下生成一个coredump文件&#xff0c;命名为core。 如果需…

IDEA调试入门指南

IDEA调试前准备 一、准备调试环境 在开始调试之前&#xff0c;确保你的IDEA已经正确安装并配置好。打开你的项目&#xff0c;确保所有的依赖都已正确加载&#xff0c;并且项目能够正常编译和运行。 二、设置断点 断点是调试过程中非常关键的一部分&#xff0c;它允许你在代…

O2OA红头文件流转与O2OA版式公文编辑器基本使用

O2OA开发平台在流程管理中&#xff0c;提供了符合国家党政机关公文格式标准&#xff08;GB/T 9704—2012&#xff09;的公文编辑组件&#xff0c;可以让用户在包含公文管理的项目实施过程中&#xff0c;轻松地实现标准化公文格式的在线编辑、痕迹保留、手写签批等功能。并且可以…

使用PySpider进行IP代理爬虫的技巧与实践

目录 前言 一、安装与配置PySpider 二、使用IP代理 三、IP代理池的使用 四、处理代理IP的异常 五、总结 前言 IP代理爬虫是一种常见的网络爬虫技术&#xff0c;可以通过使用代理IP来隐藏自己的真实IP地址&#xff0c;防止被目标网站封禁或限制访问。PySpider是一个基于P…

15届蓝桥杯备赛(2)

文章目录 刷题笔记(2)二分查找在排序数组中查找元素的第一个和最后一个位置寻找旋转排序数组中的最小值搜索旋转排序数组 链表反转链表反转链表II 二叉树相同的树对称二叉树平衡二叉树二叉树的右视图验证二叉搜索树二叉树的最近公共祖先二叉搜索树的最近公共祖先二叉树层序遍历…

为 java 开发者设计的性能测试框架,用于压测+测试报告生成

拓展阅读 junit5 系列教程 基于 junit5 实现 junitperf 源码分析 Auto generate mock data for java test.(便于 Java 测试自动生成对象信息) Junit performance rely on junit5 and jdk8.(java 性能测试框架。压测测试报告生成。) junitperf junitperf 是一款为 java 开…

Android权限大全

Android权限大全 权限名称描述android.permission.ACCESS_CHECKIN_PROPERTIES访问登记属性读取或写入登记check-in数据库属性表的权限android.permission.ACCESS_COARSE_LOCATION获取错略位置通过WiFi或移动基站的方式获取用户错略的经纬度信息,定位精度大概误差在30~1500米an…

回归预测 | Matlab实现SO-BP蛇算法优化BP神经网络多变量回归预测

回归预测 | Matlab实现SO-BP蛇算法优化BP神经网络多变量回归预测 目录 回归预测 | Matlab实现SO-BP蛇算法优化BP神经网络多变量回归预测预测效果基本描述程序设计参考资料 预测效果 基本描述 1.Matlab实现SO-BP蛇算法优化BP神经网络多变量回归预测&#xff08;完整源码和数据) …