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

【双指针算法】快乐数

1.题目解析

2.算法分析

由图可知,不管是最后可以变成1的还是不可以变成1的都相当于形成环了,只是成环处值不一样

问题转变成,判断链表是否有环

采用双指针,快慢指针算法

  • 1.定义快慢指针
  • 2.慢指针每次向后移动一步,快指针一次相后移动两步
  • 3.判断相遇时的值即可

证明:为什么一定会成环?

解答:这里用到了鸽巢原理(抽屉原理):N个巢穴,N+1只鸽子,那么可以得知至少有一个巢里面的鸽子数大于1

int类型的数据最大为2.1e9,再大一点则为10个9,9999999999,共9^2*10=810,则进行811次运算必然会回到之前的,数

3.代码编写

class Solution {public boolean isHappy(int n) {int slow=n,fast=bitsum(n);while(fast!=slow){slow=bitsum(slow);fast=bitsum(bitsum(fast));}if(slow==1){return true;}else{return false;}}public int bitsum(int n){int sum=0;while(n!=0){int k=n%10;sum+=k*k;n=n/10;}return sum;}
}


http://www.mrgr.cn/news/54278.html

相关文章:

  • Windows下部署autMan
  • 解析带有MyBatis语法的SQL字符串,获取最终的可执行SQL
  • HCIE-Datacom题库_13_认证多选、判断、简答【13道题】
  • Java中的I/O流分类简介
  • U-Boot的移植流程
  • Java后端面试题:MySQL篇
  • java语法练习-题目
  • 【最优化方法】线搜索技术
  • 【C++】C++当中的复合类型——引用和指针
  • 【ARM】ARM中断系统详解——以Cortex-A7为例
  • 大模型涌现判定
  • 数据结构-5.11.补充:二叉树遍历算法的应用
  • 分布式搜索引擎03
  • 【AUTOSAR标准文档】服务类型介绍
  • 2023年ICPC亚洲合肥赛区赛 C. Cyclic Substrings
  • 【H2O2|全栈】关于CSS(14)如何完成常规的页面布局
  • 基于机器学习的混凝土抗压强度及利用Docker与FastAPI进行模型部署并形成API
  • 鸿蒙应用开发中,实现文件上传功能
  • 查询网站在线人数
  • Python基础09_类和对象(下)迭代器和生成器函数式编程
  • UEFI 基础教程 (四十八.2) — UEFI code style
  • org.apache.http.impl.client.CloseableHttpClient的时候如果发生异常
  • 《使用Gin框架构建分布式应用》阅读笔记:p88-p100
  • 群控系统服务端开发模式-功能整理
  • 【移动安全】OWASP MASTG 移动应用程序安全测试指南
  • 大模型~合集14