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

网站开发连接数据库宁波建站模板系统

网站开发连接数据库,宁波建站模板系统,武汉手机网站建设品牌,Django可以做门户网站吗哈希表理论基础 建议:大家要了解哈希表的内部实现原理,哈希函数,哈希碰撞,以及常见哈希表的区别,数组,set 和map。 什么时候想到用哈希法,当我们遇到了要快速判断一个元素是否出现集合里的时…
 哈希表理论基础 

建议:大家要了解哈希表的内部实现原理,哈希函数,哈希碰撞,以及常见哈希表的区别,数组,set 和map。  

什么时候想到用哈希法,当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。  这句话很重要,大家在做哈希表题目都要思考这句话。 

文章讲解:代码随想录

 242.有效的字母异位词 

建议: 这道题目,大家可以感受到 数组 用来做哈希表 给我们带来的遍历之处。 

题目链接/文章讲解/视频讲解: 代码随想录

 349. 两个数组的交集 

建议:本题就开始考虑 什么时候用set 什么时候用数组,本题其实是使用set的好题,但是后来力扣改了题目描述和 测试用例,添加了 0 <= nums1[i], nums2[i] <= 1000 条件,所以使用数组也可以了,不过建议大家忽略这个条件。 尝试去使用set。 

题目链接/文章讲解/视频讲解:代码随想录

 202. 快乐数 

建议:这道题目也是set的应用,其实和上一题差不多,就是 套在快乐数一个壳子 

题目链接/文章讲解:代码随想录

 1. 两数之和 

建议:本题虽然是 力扣第一题,但是还是挺难的,也是 代码随想录中 数组,set之后,使用map解决哈希问题的第一题。 

建议大家先看视频讲解,然后尝试自己写代码,在看文章讲解,加深印象。 

题目链接/文章讲解/视频讲解:代码随想录


        使用哈希法,用数组来做哈希表。字符为key,建立key与index的映射,然后value为key出现的次数。

映射关系index=key-‘a’。

c++代码示例如下时间复杂度O(n)、空间复杂度O(1)

bool isAnagram(string s, string t) {int record[26] = { 0 };for (int i = 0; i < s.size(); i++) {record[s[i] - 'a']++;}for (int i = 0; i < t.size(); i++) {record[t[i] - 'a']--;}for (int i = 0; i < 26; i++) {if (record[i] != 0) {return false;}}return true;
}

        输出结果中每一个元素都是唯一的,我们使用unordered_set来接受结果,对于unordered_set的初始化可以使用迭代器初始化。

c++代码示例如下        时间复杂度O(n+m),空间复杂度O(n)

vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {unordered_set<int> result;unordered_set<int> nums_set(nums1.begin(), nums1.end());for (int num : nums2) {if (nums_set.find(num) != nums_set.end()) {result.insert(num);}}return vector<int>(result.begin(), result.end());
}

        发现题目给的数据的大小0<=nums1[i],nums2[i]<=1000,可以使用大小为1001的数组来做哈希表,数字作为key->index,出现次数为value。还是用unordered_set来接受结果。

c++代码示例如下

vector<int> intersection(vector<int>& nums1, vector<int>& nums2) {unordered_set<int> result;int hash[1001] = { 0 };for (int num : nums1) {hash[num] = 1;}for (int num : nums2) {if (hash[num] == 1) {result.insert(num);}}return vector<int>(result.begin(), result.end());
}

        难点就是意识到无限循环就是sum重复出现

c++代码示例如下

int getSum(int n) {int sum = 0;while (n) {sum += (n % 10) * (n % 10);n /= 10;}return sum;
}
bool isHappy(int n) {unordered_set<int> set;while (1) {int sum = getSum(n);if (sum == 1) {return true;}if (set.find(sum) != set.end()) {return false;}else {set.insert(sum);}n = sum;}
}
http://www.dinnco.com/news/64913.html

相关文章:

  • 网站开发用什么电脑电商网站平台
  • 销项税和进项导入是在国税网站做吗短视频推广渠道有哪些
  • 企业制作网站一般多少钱网站搜索系统
  • 打开网站代码怎么写奶茶店营销软文
  • 一个备案号可以绑定几个网站老哥们给个关键词
  • 网站开发一月工资多少竞价推广sem
  • 中小企业网站建设服务公司百度用户服务中心客服电话
  • 营销型网站建设必备功能福州seo视频
  • 市场推广seo职位描述企业网站优化解决方案
  • 电商网站价格监控优化网站推广
  • 武汉做个网站多少钱深圳全网营销平台排名
  • 服装饰品网站建设重庆seo优化公司
  • 网站常用素材怎样宣传自己的产品
  • 展馆设计效果图图片志鸿优化设计电子版
  • 重庆自助建站模板网络营销课程有哪些
  • 网站注册域名后怎么做百度刷搜索词
  • 昆明建设局网站怎样推广自己的产品
  • 衡水做网站网站免费发布与推广
  • 下了网站建设外贸网站推广服务
  • 网站建设 网页设计 的文章北京最新发布信息
  • flash软件做的网站最后需要用dreamweaver调整病毒营销案例
  • 网站怎么做留言的会计培训机构排名前十
  • 徐州百度推广重庆seo薪酬水平
  • 有什么网站是做办公家具seo营销推广全程实例
  • 自己电脑做采集网站全网营销一站式推广
  • 社区网站怎么做泉州seo代理计费
  • 政府网站建设 考察报告竞价网络推广托管
  • 网站建设服务属于信息技术服务吗企业应该如何进行网站推广
  • 微信公众号和网站建设seo外链建设方法
  • 微信分销网站建设费用王通seo