当前位置: 首页 > wzjs >正文

龙岩网站建设公司真正免费建站

龙岩网站建设公司,真正免费建站,昆明网站建设logovi,互动平台罗马复兴哈希表 map set 数组 在C中,set 和 map 分别提供以下三种数据结构,其底层实现以及优劣如下表所示: 集合底层实现是否有序数值是否可以重复能否更改数值查询效率增删效率std::set红黑树有序否否O(log n)O(log n)std::multiset红黑树有序是否…

哈希表

map set 数组

在C++中,set 和 map 分别提供以下三种数据结构,其底层实现以及优劣如下表所示:

集合底层实现是否有序数值是否可以重复能否更改数值查询效率增删效率
std::set红黑树有序O(log n)O(log n)
std::multiset红黑树有序O(logn)O(logn)
std::unordered_set哈希表无序O(1)O(1)

std::unordered_set底层实现为哈希表,std::set 和std::multiset 的底层实现是红黑树

红黑树是一种平衡二叉搜索树,所以key值是有序的,但key不可以修改,改动key值会导致整棵树的错乱,所以只能删除和增加。

映射底层实现是否有序数值是否可以重复能否更改数值查询效率增删效率
std::map红黑树key有序key不可重复key不可修改O(logn)O(logn)
std::multimap红黑树key有序key可重复key不可修改O(log n)O(log n)
std::unordered_map哈希表key无序key不可重复key不可修改O(1)O(1)

std::unordered_map 底层实现为哈希表,std::map 和std::multimap 的底层实现是红黑树

同理,std::map 和std::multimap 的key也是有序的

Set与Multiset-笔记-CSDN博客

有效的字母异位词

思路
在这里插入图片描述

定义一个数组叫做record用来上记录字符串s里字符出现的次数

242. 有效的字母异位词 - 力扣(LeetCode)

两个数组的交集

在这里插入图片描述

class Solution {
public:vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {unordered_set<int>result_set;unordered_set<int>nums_set(nums1.begin(),nums1.end());for(auto n2:nums2){if(nums_set.find(n2)!=nums_set.end()){result_set.insert(n2);}}return vector<int>(result_set.begin(),result_set.end());}
};

两数之和

在遍历数组的时候,只需要向map去查询是否有和目前遍历元素匹配的数值,如果有,就找到的匹配对,如果没有,就把目前遍历的元素放进map中,因为map存放的就是我们访问过的元素

class Solution {
public:vector<int> twoSum(vector<int>& nums, int target) {std::unordered_map <int,int> map;for(int i = 0; i < nums.size(); i++) {// 遍历当前元素,并在map中寻找是否有匹配的keyauto iter = map.find(target - nums[i]); if(iter != map.end()) {return {iter->second, i};}// 如果没找到匹配对,就把访问过的元素和下标加入到map中map.insert(pair<int, int>(nums[i], i)); }return {};}
};

1. 两数之和 - 力扣(LeetCode)

四数之和

  1. 遍历大A和大B数组,统计两个数组元素之和,和出现的次数,放到map中。
    1. 再遍历大C和大D数组,找到如果 0-(c+d) 在map中出现过的话,就用count把map中key对应的value也就是出现次数统计出来。

三数之和

双指针
依然还是在数组中找到 abc 使得a + b +c =0,我们这里相当于 a = nums[i],b = nums[left],c = nums[right]。

如果nums[i] + nums[left] + nums[right] > 0
说明 此时三数之和大了,因为数组是排序后了,所以right下标就应该向左移动,这样才能让三数之和小一些。

如果 nums[i] + nums[left] + nums[right] < 0
说明 此时 三数之和小了,left 就向右移动,才能让三数之和大一些,直到left与right相遇为止

http://www.dtcms.com/wzjs/110188.html

相关文章:

  • 微信app官方下载白帽优化关键词排名seo
  • 新网站怎么做seo优化云seo关键词排名优化软件
  • 全球最大的网站建设外包网竞价推广课程
  • 淘宝客网站怎么做seo友情链接发布平台
  • 替朋友做网站深圳seo优化推广公司
  • 免费绑定域名的建站外包优化网站
  • 做一个答疑网站西安网站优化培训
  • 深圳返利网站开发网络推广主要是做什么工作
  • 三端互通传奇手游找服网站谷歌官方网站首页
  • 做个营销型网站深圳网络营销策划公司
  • 南通做网站推广的公司大数据营销名词解释
  • 做网站快速排名培训学校招生方案
  • 做网站的软件是哪个互联网营销师题库
  • 个人网站推广app如何推广自己的店铺?
  • html5 音乐网站网址关键词查询网站
  • 有域名如何做网站百度浏览器下载官方免费
  • 广西商城网站建设黄冈黄页88网黄冈房产估价
  • 柳州网站建设新手怎么引流推广推广引流
  • 网站建设 网站软文推广chatgpt 链接
  • 安丘网站建设开发常用的网络营销方法
  • 北京网吧百家号seo怎么做
  • 怎样备份网站app拉新推广平台
  • 天津网站建设业务网站互联网推广
  • 国外的智慧城市建设网站百度小说网
  • 汽车精品设计网站建设如何注册一个自己的网站
  • 下wordpress台州seo
  • 大学生电子商务专业网站设计南昌seo方案
  • 玩具电子商务网站建设论文深圳纯手工seo
  • 物联网是什么意思推广seo网站
  • 集成wamp访问域名打开tp做的网站东莞关键词排名seo