【优选算法】快乐数

devtools/2024/12/26 4:17:51/

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

算法原理:

鸽巢原理(抽屉原理):n个巢穴,n+1个鸽子,至少有一个巢穴里的鸽子 > 1。

可以抽象为:判断链表是否有环,环里的数是否为1

解法:快慢双指针

1.定义快慢指针(可以用数充当指针)

2.慢指针每次向后移动一步,快指针每次向后移动两步

3.判断相遇时的值即可

class Solution {public boolean isHappy(int n) {int slow = n, fast = bitSum(n);while(slow != fast){slow = bitSum(slow);fast = bitSum(bitSum(fast));}return slow == 1;}public int bitSum(int n){//返回 n 这个数每一位上的平方和int sum = 0;while(n != 0){int t = n % 10;sum += t * t;n /= 10;}return sum;}
}

http://www.ppmy.cn/devtools/145436.html

相关文章

VMWare 的克隆操作

零、碎碎念 VMWare 的这个克隆操作很简单,单拎出来成贴的目的是方便后续使用。 一、操作步骤 1.1、在“源”服务器上点右键,选择“管理--克隆” 1.2、选择“虚拟机的当前状态”为基础制作克隆,如下图所示,然后点击“下一页” 1.3、…

DAP调试器 硬石 KEIL5配置

基础配置 选择F407板子型号 勾选这个可以支持定义跳转 添加工程头文件路径 选择CMSIS-DAP

网易云FM 1.7 | 播放网易云音乐歌单的小工具

网易云FM是一款专为Windows设计的PC桌面单文件应用,用于随机播放网易云音乐歌单中的歌曲。用户启动软件后可直接点击播放开始随机播放,左下角菜单进入歌单选择界面,双击选择一个歌单进行随机播放,也可搜索歌单。该软件添加了网易云…

Qt如何将系统中使用的qDebug、qWarning等输出的信息显示到自定义的界面上或保存到文件中

一、界面中添加一个QTextBrowser 二、相关源码 .hpp #ifndef LOGLOOKWIDGET_H #define LOGLOOKWIDGET_H#include <QWidget> #include <QMutex> #include <iostream> #include <QFile> #include <QTextStream> #include <QTime> #include…

Linux 静默安装weblogic及JDK安装

提示&#xff1a;虚拟机CentOS7环境下操作 文章目录 一、JDK安装 1.下载jdk地址2…创建路径-把jdk移动进去3.移动桌面行的jdk包移动到这个文件中4.解压jdk5.配置环境变量 二、安装weblogic 2.1.查看有没有安装jdk2.2创建weblogic用户2.3.在opt目录下创建一个weblogic目录2.4.把…

MySQL-MVCC(多版本并发控制)

MySQL中的MVCC&#xff08;Multi-Version Concurrency Control&#xff09;是一种并发控制机制&#xff0c;用于提供读-写冲突时的可靠读取。 MVCC通过保存数据在某个时间点的快照来实现这一点&#xff0c;从而避免了传统的锁定方法。在InnoDB存储引擎中&#xff0c;MVCC是通过…

Vue项目重构实践:如何构建可维护的企业级应用

在企业级前端开发中&#xff0c;需求变更是常态。如何构建一个易于维护和扩展的Vue项目&#xff0c;避免需求变化时大规模重构&#xff0c;是每个前端开发者都需要面对的挑战。本文将从实践角度&#xff0c;分享一些行之有效的架构设计策略。 1. 核心策略 1.1 组件化设计 将…

R 常用的内置软件包及功能介绍

R 中有许多内置包&#xff0c;提供了丰富的功能来帮助用户进行数据分析、统计建模、图形可视化等任务。以下是一些常用的内置包及其功能简介&#xff1a; 1. stats 包 stats 是 R 的一个核心包&#xff0c;几乎每个 R 用户都会使用它。它包含了许多统计分析的函数&#xff0c…