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

站长工具的使用seo综合查询运营邢台168交友最新信息

站长工具的使用seo综合查询运营,邢台168交友最新信息,芜湖镜湖区做网站公司,怎么百度上搜到自己的网站快乐数原题地址 方法一#xff1a;哈希集合 定义函数 getNext(n) #xff0c;返回 n 的所有位的平方和。一直执行 ngetNext(n) #xff0c;最终只有 2 种可能#xff1a; n 停留在 1 。无限循环且不为 1 。 证明#xff1a;情况 1 是存在的#xff0c;如力扣的示例一…快乐数原题地址 方法一哈希集合 定义函数 getNext(n) 返回 n 的所有位的平方和。一直执行 ngetNext(n) 最终只有 2 种可能 n 停留在 1 。无限循环且不为 1 。 证明情况 1 是存在的如力扣的示例一 接下来只需证明反复执行 getNext 操作最终一定会无限循环停留在 1 可以理解为无限的 1→1 循环。 分类讨论 n 的位数 ≤3 那么 getNext(n)getNext(999)243 那么反复执行 getNext(n) 执行 244 次以上根据抽屉原理一定会出现循环。n 的位数 3 如 n 为 4 位数执行 getNext(n) 后 n 的位数会减小直到变为情况 1 。 所以我们可以使用如下算法反复执行 ngetNext(n) 会出现下面 3 种情况 n1 说明原来的 n 是快乐数。n 不在哈希表中则把 n 插入哈希表。n 在哈希表中且 n≠1 说明 n 已经进入循环原来的 n 不是快乐数。 // 方法一哈希集合 class Solution { public:bool isHappy(int n){unordered_setint hashtable;while (n ! 1){// 若哈希表中没有 n 就添加 n 否则不是快乐数if (!hashtable.count(n)){hashtable.insert(n);}else{return false;}n getNext(n);}return true;} private:// 计算 n 的所有位的平方和int getNext(int n){int sum 0;while (n){int digit n % 10;n / 10;sum (digit * digit);}return sum;} }; 方法二快慢指针龟兔赛跑、弗洛伊德循环查找算法 考虑到反复执行 ngetNext(n) 一定会进入循环参考判断链表是否带环的思路定义 fast 和 slow  slow 每次执行 slowgetNext(slow) 一次 fast 每次执行 fastgetNext(fast) 两次那么 slow 和 fast 最终一定会在循环内相遇。若相遇时 slowfast1 则 n 为快乐数否则不是快乐数。 这是因为若链表带环最终 fast 和 slow 一定会入环且每次 fast 比 slow 多走一步 fast 和 slow 的距离缩短一步最终距离一定会减为 0 两者相遇。 // 方法二快慢指针法 class Solution { public:bool isHappy(int n){int slow n;int fast getNext(slow);while (slow ! fast){// 慢指针一次走一步slow getNext(slow);// 快指针一次走两步fast getNext(getNext(fast));}return slow 1;} private:// 计算 n 的所有位的平方和int getNext(int n){int sum 0;while (n){int digit n % 10;n / 10;sum (digit * digit);}return sum;} }; 方法三数学 根据方法一所述反复执行 ngetNext(n) n 一定会跌为三位数以下且进入循环。使用硬编码穷举最终的循环一定是 ...,4,16,37,58,89,145,42,20,4,... 或者 ...,1,1,... 所以只需要提前把循环中的数存储在哈希表中反复执行 ngetNext(n) 会出现 3 种情况 n 在哈希表中说明已经进入循环原来的 n 不是快乐数。n1 说明原来的 n 是快乐数。n 不在哈希表中。 // 方法三数学 class Solution { public:bool isHappy(int n){while (1){// 最终要么为 1 要么进入循环if (n 1){return true;}else if (cycleMembers.count(n)){return false;}n getNext(n);}} private:// 计算 n 的所有位的平方和int getNext(int n){int sum 0;while (n){int digit n % 10;n / 10;sum (digit * digit);}return sum;}static unordered_setint cycleMembers; };unordered_setint Solution::cycleMembers { 4,16,37,58,89,145,42,20 };
http://www.dnsts.com.cn/news/66888.html

相关文章:

  • 有做网站看病的吗汉中做网站的公司
  • 用vs2010做免费网站模板下载it运维工程师证书
  • 免费申请网站展示型网站一样做seo优化吗
  • 秋长网站建设自己创做网站
  • 网销都是在那些网站做推广可以做网站开个写手公司
  • 制作 网站 盈利青岛专业餐饮网站制作
  • 青岛网站排名方案设计网站策划书
  • 用node和vue做的网站北京网站制作推广
  • 平邑网站开发嘉纪商正网站建设公司
  • 注入漏洞网站源码济宁网站建设 智雅
  • 网站建设维护费 会计科目阿里云企业网站备案流程
  • steam做皮肤网站php网站开发中如何
  • 大量网站开发视频 文档VIP资源备案修改网站名称
  • 电子方案网站建设方案wordpress theme free
  • 网站流量一直做不起来南昌网站建设的流程
  • 做网站书内网网站建设
  • 看网站是不是WP做的wordpress给指定用户设置角色
  • 建网站要会什么wordpress 注册验证
  • 建设银行手机银行登录网站wordpress中文下载方法
  • 大气集团企业网站模板微信推广多少钱一次
  • 哪些网站可以做画赚钱战队头像logo免费自动生成器
  • 博客网站开发框架云虚拟主机发布wordpress
  • 菏泽网站建设电话宁波市建设工程造价信息
  • 大型网站制作公司飞数设置wordpress文章标题高亮的代码
  • 20个外国平面设计网站朋友圈广告投放
  • 中文网站模板 免费非响应式网站优点
  • 做app和网站哪个比较好地方生活门户网站名称
  • 上虞网站设计如何建造免费的网站
  • 做网站如何自动采集图片淘宝支持做微交易网站吗
  • 网站建设和电商区别免费科技