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

快乐数(双指针解法)

题目链接202. 快乐数 - 力扣(LeetCode)

题目拆解

1 取一个正整数每一位的平方和为,如果为1那么直接可以判定为快乐数,如果不为1,就重复这个过程,直到出现1

2 实际上,这道题只有两种情况,并且两种情况都会出现循环,1不管怎么重复操作的得到的都是1,各位数2不管怎么操作还是2,不存在无限循环的不同个体

3 所以我们这里可以很自然的就联想到快慢指针来找循环的方法,相遇的时候刚好是进入循环的时候

解题步骤

1 可以先包装平方和的操作,方便主函数中直接调用

2 接着写函数主体,先设置初始值,slow指=指针指向第一位,fast指针指向第二位,接着让slow指针调用一次sum函数,相当于走一步;让fast指针调用两次sum,相当于走两步

3 最后根据相遇的时候二者的值就可以直接返回了

class Solution {
public:
int sum(int n)
{int sum=0;//返回平方和之后的数while(n>0){int m=n%10;sum+=m*m;n/=10;}return sum;
}bool isHappy(int n){int slow=n;int fast=sum(n);while(fast!=slow)//相遇的时候进入循环{slow=sum(slow);fast=sum(sum(fast));}//都为1的时候说明为快乐数return slow==1;}
};

http://www.dtcms.com/a/161295.html

相关文章:

  • Spring框架allow-bean-definition-overriding详细解释
  • 永磁同步电机控制算法-转速环电流环SMC控制器
  • 微信jdk 前端vue获取流程1、
  • 基于【低代码+AI智能体】开发智能考试系统
  • 构建“云中”高并发:12306技术改造的系统性启示
  • leetcode11-盛水最多的容器
  • Druid监控sql导致的内存溢出
  • 蓝桥杯 3. 压缩字符串
  • oracle 数据库查询指定用户下每个表占用空间的大小,倒序显示
  • MATLAB Coder代码生成(工业部署)——MATLAB技巧
  • 2025系统架构师---基于规则的系统架构风格‌
  • 龙虎榜——20250428
  • 1.9多元函数积分学
  • 报表工具:企业数据决策的“智能翻译官“
  • matlab中的Simscape的调用-入门
  • [特殊字符] SpringCloud项目中使用OpenFeign进行微服务远程调用详解(含连接池与日志配置)
  • Lua 第13部分 位和字节
  • 从微服务到AI服务:Nacos 3.0如何重构下一代动态治理体系?
  • MySQL基础篇 | 1-数据库概述与MySQL安装
  • 第11章 安全网络架构和组件(二)
  • Golang|工厂模式
  • 网络安全实战指南:从安全巡检到权限维持的应急响应与木马查杀全(命令查收表)
  • 后缀数组~
  • 区块链vs实体经济:一场金融、医疗、政务与物流的“效率革命”
  • 优化问题中变量分类与作用分析
  • JavaWeb学习打卡-Day5-Spring事务管理、SpringAOP
  • 系统传输慢,多路复用还不行,加多物理链路buff
  • 同时安装多个版本的golang
  • 账户解封无望?3步高效申诉取回亚马逊冻结资金
  • 【计网】计算机网络的类别与性能