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

网站动态标签石家庄做网站电话

网站动态标签,石家庄做网站电话,推广方法英文,汕头提供关键词平台目录 题目介绍: 算法原理: 鸽巢原理: 如何找到环里元素: 代码实现: 题目介绍: 题目链接:. - 力扣(LeetCode) 算法原理: 我先简单举两个例子&#xff…

目录

题目介绍: 

 算法原理:

鸽巢原理:

如何找到环里元素:

代码实现:


题目介绍: 

题目链接:. - 力扣(LeetCode)

 算法原理:

我先简单举两个例子:

19: 

2:

  其实大部分人拿到这道题,第一感觉就是如果是快乐数,只需利用循环一步步求解,最后如果有一次结果为1时,就是快乐数,可是如果不是快乐数,岂不是要一直循环下去?这道题最重要的一点就是如果不是快乐数最后的数据是必定成环的,证明需要利用鸽巢原理:

鸽巢原理:

如果有n个巢穴,n+1只鸽子,那么必定会有一个巢血有2个或以上的鸽子。

这个原理很简单,我们利用它来证明一下这道题若不是快乐数必定成环:

利用极限法:

来看看这道题数据的最大值2的31次方=2147483648,不妨再去大点直接取9999999999,我们看看这个数经历一次变化(替换为该数每一位的平方和)后会变成多少,也就是9*9*10=810,这个最大的数经历一次变化后变为810,那么比这个数小的数经历一次变化肯定不会大于810,所以我们的巢就是1-810,也就是有810个巢,那我们的鸽子就是变化的次数,一个数若变化811次,则至少有2个数是重复的,重复的一出现,后面就全一样了,就成环了。


 那如果是快乐数,是不是就没有环呢?其实也有,快乐数最后变为1后,若再经历一次变化还是1,其实也成环了,只是环里的元素都是1,而不是快乐数环里的元素都不是1,所以这道题目的思路很清晰了,我们只要找到一个环里元素判断是不是1就行了。

如何找到环里元素:

  面对这种环的问题,我们可以利用双指针里的快慢指针法就可以求解了,如图:

slow慢指针一次走一步,fast快指针一次走两步。

还没进环之前,slow永远无法追上fast指针,但当进环后,就像两个人在圆形跑道比赛,只要两人有速度差(速度不一样),就绝对会相遇。 只要以相遇,判断相遇时的元素是否为1就行。

代码实现:

class Solution {
public:int compute(int n)//计算n每个位上的平方和{int sum=0;while(n){int tmp = n%10;sum+=tmp*tmp;n/=10;}return sum;}bool isHappy(int n) {int slow =n,fast=compute(n);//初始fast在slow前一个while(slow!=fast){slow=compute(slow);//slow一次走一步fast=compute(compute(fast));//fast一次走两步}return fast==1;//相遇时fast或者slow等于1就是快乐数}
};

http://www.yayakq.cn/news/153552/

相关文章:

  • 如何申请网站备案网站收录在哪里可以查看
  • 购物网站用html怎么做网站开发最合适的搭配
  • 上传网站工具php建站程序
  • 滨州改版网站建设服务医院 网站后台管理
  • 一个人是否可以做公司网站毕业设计做课程网站好
  • 政务网站建设工作总结网站开发运维机构设置
  • 网站特色分析柳州住房城乡建设厅官方网站
  • 浅谈网站建设网站专题制作原则
  • 网站规划与开发专业江苏建设厅厅长徐其耀
  • 英文网站建设怎么样厦门网站建设报
  • 滨州市网站建设网页设计学校
  • 百度wap网站建设网络广告营销的典型案例
  • 鞍山做网站优化公司举例网络营销的例子
  • 扬中网站建设案例设计上海2021门票
  • 个人网站用备案吗该网站使用的安全设置
  • 烟台网站开发技术网站代理浏览器一
  • aspx网站开发手机网站生成app客户端
  • 网站开发的账务处理WordPress方糖
  • 郑州网站建设讯息公司设计网站推荐
  • 建瓯网站建设wzjseo类似于微博网站怎么做的
  • 用别人服务器做网站网站建设 案例
  • 注册一个公司需要什么资料云速seo百度点击
  • 网站建设 ipc备案佛山专业网站设计公司
  • 新网站建设流程罗湖网站-建设深圳信科
  • 沈阳地区精神文明建设网站网络推广基础
  • iis默认网站删除google seo是什么
  • 层次结构分明的网站配色方案优秀的软文
  • 汕头建站模板上海建筑工程公司排行榜
  • 建设银行怎么在网站设置限额喀什seo排名
  • 南京做网站优化的企业排名next wordpress