Leetcode202快乐数【flyod判圈法】

弗洛伊德判圈法

如果一个有限状态机,迭代函数或者链表上存在环,那么在某个环上以不同速度跑路的两个指针必定会相遇。
一般一个步长1,一个步长2即可
对于本题判断相遇点是否为1即可。


#include<cstdio>
using namespace std;
class Solution {
   
public:
int fun(int n) {
   
	int sum = 0;
	while (n)
	{
   
		int temp = n % 10;
		sum += temp * temp;
		n /= 10;
	}
	return sum;
}
    bool isHappy(int n) {
   
	int slow = n;
	int fast = n;
	do {
   
		slow = fun(slow);
		fast = fun(fun(fast));
	} while (slow != fast);
	return slow == 1;
    }
};

顺嘴一提。leetcode这个main函数有点东西。。

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-02 17:58
点赞 评论 收藏
分享
frutiger:逆天,我家就安阳的,这hr咋能说3k的,你送外卖不比这工资高得多?还说大厂来的6k,打发叫花子的呢?这hr是怎么做到说昧良心的话的
找工作时遇到的神仙HR
点赞 评论 收藏
分享
06-17 00:26
门头沟学院 Java
程序员小白条:建议换下项目,智能 AI 旅游推荐平台:https://github.com/luoye6/vue3_tourism_frontend 智能 AI 校园二手交易平台:https://github.com/luoye6/vue3_trade_frontend GPT 智能图书馆:https://github.com/luoye6/Vue_BookManageSystem 选项目要选自己能掌握的,然后最好能自己拓展的,分布式这种尽量别去写,不然你只能背八股文了,另外实习的话要多投,尤其是学历不利的情况下,多找几段实习,最好公司title大一点的
无实习如何秋招上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务