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

下载模板优化网址

下载模板,优化网址,wordpress电台插件,如何在凡科上做网站今天,带来哈希表相关算法的讲解。文中不足错漏之处望请斧正! 理论基础点这里 1. 快乐数 分析题意 出题者已经把题意明确告诉我们了: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1&am…

今天,带来哈希表相关算法的讲解。文中不足错漏之处望请斧正!

理论基础点这里


1. 快乐数

分析题意

出题者已经把题意明确告诉我们了:

  • 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。
  • 然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。
  • 如果这个过程 结果为 1,那么这个数就是快乐数。

题意转化

怎么理解?

如果我们替换平方和的过程中, 发现当前的数字之前已经出现过, 那我们就陷入了无限循环.

如果没有把题意转化过来, 就会手足无措了.

解决思路

那我们只需要不断重复替换平方和的过程, 再同时判断平方和之前是否出现过:

  • 没出现过: 继续重复替换
  • 出现过: 陷入无限循环, 结束

编程实现

取每位上的数

关于取十进制数上的每位, 可以再谈谈.

如, 要取1234中的每位数.

1234 % 10 = 4 //取到最后一位
1234 /= 10; //去掉最后一位
123  % 10 = 3 //取到倒数第二位
123 /= 10; //去掉最后一位
12 % 10 = 4 //取到倒数第三位
12 /= 10; //去掉最后一位
1 % 10 = 4 //取到倒数第四位
1 /= 10; //去掉最后一位
//最终1234变为0,结束

如果是二进制, 八进制, 只需要mod8即可.

class Solution {
public:// 可能替换的过程可能一直循环:// 如果当前得到的数之前已经得到过, 则会无限循环; 反之不会bool isHappy(int n) {unordered_set<int> appearedNum;while (n != 1) {int sum = getSqureSum(n);// 只要当前的数之前没出现过, 就代表可能这个数能变到1if (appearedNum.find(sum) == appearedNum.end()) {appearedNum.insert(sum);} else { // 反之不可能变到1return false;}n = sum;}return true;}
private:int getSqureSum(int n) {int sum = 0;while (n) {sum += pow(n % 10, 2);n /= 10;}return sum;}
};

2. 两数之和

分析题意

*很好理解, 无需分析.

题意转化

找到 x 和 y, 满足 x + y = target.

解决思路

一层遍历获取 x, 查找nums内是否有这样的 y 满足 y = target - x.

关于查找:

  • for暴力查找 – O(n)
  • 哈希快速查找 – O(1)

查找某个元素在某个集合中是否用过, 这是哈希的绝活; 而且题目要求返回下标. 综合这两点, 我们用 unordered_map, 存储键值对的哈希表.

编程实现

class Solution {
public:// 找到 x 和 y, 满足 x + y = targetvector<int> twoSum(vector<int>& nums, int target) {unordered_map<int, int> numsMap; // <value, index>// 一层遍历获取 x, 查找nums内是否有这样的 y 满足 y = target - xfor (int i = 0; i < nums.size(); ++i) {int x = nums[i];int y = target - x;auto iter = numsMap.find(y);if (iter != numsMap.end()) {int i1 = i;int i2 = iter->first;return {i, iter->second};} else {numsMap.insert(pair<int, int>(nums[i], i));}}return {};}
};

今天的分享就到这里了,感谢您能看到这里。

这里是培根的blog,期待与你共同进步!

http://www.hrbkazy.com/news/34746.html

相关文章:

  • 什么是一学一做视频网站好淘宝关键词挖掘工具
  • 手机在线做网站常用的网络营销方法及效果
  • 怎样做网站底部导航网站怎样关键词排名优化
  • chatgpt 网站网页推广怎么做
  • 企业网站建设的重要性及意义济南百度代理
  • 做零食的网站网上怎么找人去推广广告
  • 网站开发可以自学吗网站建网站建设网站
  • 自己能制作免费网站吗巨量算数
  • 广州网站建设是什么意思seo领导屋
  • 电脑系统优化软件哪个好用网站优化查询代码
  • 中煤地建设有限公司网站seo网站推广主要目的不包括
  • 本地模拟wordpress网站排名优化公司
  • 怎么做网站推销产品十大seo公司
  • 杭州的网站建设公司有哪些软文推广一般发布在哪些平台
  • 百度上能收到的企业名称网站怎么做网址域名查询ip地址
  • 手机app微信网站建设搜索引擎营销案例分析
  • 公司做网站费用兰州网络推广的平台
  • 购买一级域名做网站网络seo关键词优化技术
  • 做网站赚钱难网站搜索排名靠前
  • 重庆市建设公共资源交易中心网站智能建站模板
  • 企业所得税避税方法seo需求
  • 建站工具 wordpress电脑培训学校网站
  • 淄博桓台学校网站建设定制百度旗下所有app列表
  • 美妆网站怎么做山东今日头条新闻
  • 微信营销和网站建设营销型网站和普通网站
  • 网站建设大学友情链接怎么交换
  • 美工怎么做网站效果图淘宝排名查询
  • 做封面模板下载网站营销型网站建设企业
  • 网络营销培训心得关键词快速排名seo怎么优化
  • 给别人开发一个网站多少钱百度浏览器入口