方法一:哈希表
算法分为两部分(1)给一个数字 nn,它的下一个数字是什么?(2)按照一系列的数字来判断我们是否进入了一个循环。
第 1 部分我们按照题目的要求做数位分离,求平方和。
第 2 部分可以使用 hashset 完成。每次生成链中的下一个数字时,我们都会检查它是否已经在 hashset 中。(1)如果它不在 hashset 中,我们应该添加它。(2)如果它在 hashset 中,这意味着我们处于一个循环中,因此应该返回 false。
class solution {
public boolean ishappy(int n) {
set hash = new hashset<>(); // 哈希表存储
while(n!=1&&!hash.contains(n)){ // n不为1 & n不在表中
hash.add(n);
n = getnext(n); // 继续计算
}
return n == 1;
}
public int getnext(int n){ // 计算下一个数,求平方和
int total = 0;
while(n > 0){
int d = n % 10;
n = n / 10;
total = total + d*d;
}
return total;
}
}
/**
-
@param {number} n
-
@return {boolean}
*/
var ishappy = function(n) {
if(n === 1)
return true;
const list = new set();
while(!list.has(n)){
list.add(n);
n = next(n);
}
return n===1;
};
function next(n){
n = n + ‘’
let sum = 0
小编13年上海交大毕业,曾经在小公司待过,也去过华为、oppo等大厂,18年进入阿里一直到现在。
深知大多数初中级java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面v无偿领取!(备注java)
最后
面试是跳槽涨薪最直接有效的方式,马上金九银十来了,各位做好面试造飞机,工作拧螺丝的准备了吗?
掌握了这些知识点,面试时在候选人中又可以夺目不少,暴击9999点。机会都是留给有准备的人,只有充足的准备,才可能让自己可以在候选人中脱颖而出。
点。机会都是留给有准备的人,只有充足的准备,才可能让自己可以在候选人中脱颖而出。
[外链图片转存中…(img-snw0jwtc-1711161851264)]
[外链图片转存中…(img-n9plprwi-1711161851265)]
发表评论