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

网站建网站建设网站自己做的网站百度搜到

网站建网站建设网站,自己做的网站百度搜到,株洲网站建设费用,网站头部怎么做哈希表 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/577430.html

相关文章:

  • 框架网站建设展示网站建设价格
  • 北京建设网站的公司哪家好东莞横沥新闻今天
  • 淘客手机网站源码商业空间设计方案ppt
  • 建公司网站的详细步骤山西建筑网站设计设计
  • js效果网站html网页模板网站
  • 网站建设有什么好的介绍做网站公司融资多少
  • 大连比较好的建站公司轻量应用服务器做网站
  • 东莞网站建设基本流程图wordpress自适应设置宽度
  • 网站创建方案论文如何选择一个好的优质网站建设公司
  • 地方网站盈利模式微博推广费用
  • 昆山网站建设哪家比较好网站关键词排名怎么优化
  • 荷泽网站建设在线音乐网站开发摘要
  • 比较好的网站开发公司电话手机个人简历模板下载
  • 梧州市建设局官方网站十堰seo优化分析
  • 适合初学者模仿的网站类似wordpress的应用
  • 最好建站网站昆山 网站运营
  • wordpress query vars什么是seo搜索
  • 国内自助建站平台有哪些网址打不开怎么解决
  • 手工品外贸出口网站建设方案郑州优化网站 优帮云
  • 记事本做网站背景色怎么弄html编辑器怎么用
  • 注册一个网站网站后台拿shell
  • 网站底部工信部链接怎么做建站极速通
  • 网站手机网站制作宁波网站设计公司
  • 制作介绍的网站网站建设费用模板
  • 商贸行业网站建设朝阳区规划网站
  • 懂得网站推广网站营销做的好的律师
  • 哪里可以免费建设网站深圳公司注册官网
  • 网站设计尺寸规范dede网站主页打不开
  • 京东网站建设哪家好免费功能网站
  • 新乡网站建设制作长沙seo优化