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

wordpress 获取附件seo营销外包

wordpress 获取附件,seo营销外包,深圳品牌设计网站,网站开发论文的分类号文章目录 两数之和判定是否互为字符重排存在重复元素存在重复元素 II字母异位词分组 哈希表:一种存储数据的容器; 可以快速查找某个元素,时间复杂度O(1); 当频繁查找某一个数时,我们可以使用哈希表 创建一个容器&#…

文章目录

  • 两数之和
  • 判定是否互为字符重排
  • 存在重复元素
  • 存在重复元素 II
  • 字母异位词分组

哈希表:一种存储数据的容器;
可以快速查找某个元素,时间复杂度O(1)
频繁查找某一个数时,我们可以使用哈希表

  1. 创建一个容器(unordered_map)
  2. 数组模拟一个简易哈希表

容器

数据结构unordered_mapmapunorded_setset
实现机理hashRBThashRBT
元素格式key+valuekey+valuekeykey
存储规律无序键升序无序键升序
元素重复键不可,值可键不可,值可不可重复不可重复

两数之和

题目:两数之和

在这里插入图片描述
思路

  • 暴力枚举,初始两个指针 i,j,遍历所有二元组,判断nums[i] + nums[j] == target,时间复杂度:O(N^2)
  • 暴力枚举时间复杂度较高的原因是寻找 target - x 的时间复杂度过高,使用哈希表我们可以将查找的时间复杂度降为O(1),对于每一个 x,我们首先查询哈希表中是否存在target - x

我们可以将元素放入到哈希表中的同时,检查表中是否已经存在当前元素所对应的目标元素,这样就可以避免将元素全部放入到哈希表之后再来二次遍历

C++代码

class Solution 
{
public:vector<int> twoSum(vector<int>& numbers, int target) {unordered_map<int, int> hash; // 【数,下标】for(int i = 0; i < numbers.size(); i++){if(hash.find(target - numbers[i]) != hash.end())return {i, hash[target - numbers[i]]};hash[ numbers[i] ] = i;}return {};}
};

判定是否互为字符重排

题目:判定是否互为字符重排

在这里插入图片描述
思路

  • 如果两长度不相等,直接返回fasle
  • 创建一个hash表,对于s1我们添加到hash表中,对于s2中的每个字符如果hash中存在,那么我们删除一个,最后单独遍历一遍hash表,如果其值不等于零也就意味值s1或s2中元素数量不匹配,也就不发重排。

C++代码

class Solution 
{
public:bool CheckPermutation(string s1, string s2) {if(s1.size() != s2.size()) return false;unordered_map<char, int> hash;for(auto ch : s1) hash[ch]++;for(auto ch : s2) hash[ch]--;for(auto x : hash) if(x.second != 0)return false;return true;}};

存在重复元素

题目:存在重复元素

在这里插入图片描述
思路

  • 创建一个hash表,插入元素;
  • 遍历hash表,如果某个元素个数不等于1,返回true;遍历完后如果没有返回,则返回false

C++代码

class Solution 
{
public:bool containsDuplicate(vector<int>& nums) {unordered_map<int, int> hash;for(auto x : nums)hash[x]++;for(auto x : hash)if(x.second != 1) return true;return false;}
};

存在重复元素 II

题目:存在重复元素 II

在这里插入图片描述
思路

  • 和两数之和一样,只需在遇到相同元素时相减判断;

C++代码

class Solution 
{
public:bool containsNearbyDuplicate(vector<int>& nums, int k) {// 【数,下标】unordered_map<int, int> hash;int n = nums.size();for(int i = 0; i < n; i++){// 如果当前元素已经在 hash 中存在if(hash.count(nums[i])){// 判断下标是否满足要求if(i - hash[nums[i]] <= k)return true;}hash[nums[i]] = i;}return false; // 遍历完数组没有发现符合条件的重复元素,返回 false}
};

字母异位词分组

题目: 字母异位词分组

在这里插入图片描述
思路

  • 判断两个字符串是否为字母异位词(排序)
  • unordered_map<string, vector<string>> hash;

C++代码

class Solution 
{
public:vector<vector<string>> groupAnagrams(vector<string>& strs){unordered_map<string, vector<string>> hash;for(auto& s : strs){string tmp = s;sort(tmp.begin(), tmp.end());hash[tmp].push_bacck(s);}vector<vector<string>> ret;for(auto& [k, v] : hash){ret.push_bacck(y);} return ret;}
};
http://www.ds6.com.cn/news/34110.html

相关文章:

  • 照片做视频ppt模板下载网站好怎么自己做一个网站
  • 3建设营销型网站流程图营销渠道策略有哪些
  • vue做门户网站百度高级搜索指令
  • jsp动态网站开发教程谷歌chrome浏览器
  • 网站建设优化推广西藏chinaz站长素材
  • 网络规划设计师通过率是多少百度seo提高排名费用
  • 网站设计专题页免费外链网
  • 山东省建设机械协会网站免费的个人主页网页制作网站
  • 安康市教育云平台淘宝优化
  • 网站推广网络怎么做电商生意
  • 招标网站靠谱吗网站推广交换链接
  • 网站备案成功然后怎么做138ip查询网域名解析
  • 深圳网站建设 易通鼎深圳关键词排名seo
  • 商店网站在线设计长沙网络推广网站制作
  • 网站代码大全可复制百度关键词排名点击器
  • 建个网站视频seo在线优化工具
  • 网站后台软件可以自己做吗windows优化大师下载安装
  • 做外贸网站用什么软件翻强的东莞seo优化排名推广
  • 网站推广广告词如何做网站推广
  • 网站怎么做全站搜索网络做推广广告公司
  • 做网站时会遇到什么问题百度怎么免费推广
  • 茂名免费网站建设汕头百度网站推广
  • 网站制作和设计需要多少钱海外网络推广服务
  • 日本做瞹瞹嗳视频网站指数工具
  • 一个域名一个主机可以做两个网站吗qq引流推广软件免费
  • 南京平台网站建设google怎么推广
  • 深圳做门户网站的网络公司合肥seo建站
  • 深圳外贸网站设计公司学大教育培训机构电话
  • 做系统用什么网站优化百度seo技术搜索引擎
  • 东风多利卡道路清障车做网站营销型网站建设的步骤流程是什么