标签:10 202 int sum fast 链表 快乐 low 隐藏
分析:对于无限循环的情况,在计算中间的下一个值的时候会出现和已经计算出来的值的重复情况
- 如果用一个链表存储这些计算的中间数,则链表中存在环,如果这个环的起点是1那么这个n是快了数否则不是快乐数
- 判断链表中是否有环可以使用快慢指针的做法,慢指针走一步快指针走两步
1 class Solution { 2 // 模拟链表的快慢指针 3 public int sum(int n){ 4 int result = 0; 5 while(n!=0){ 6 result += (n%10)*(n%10); 7 n = n/10; 8 } 9 return result; 10 } 11 public boolean isHappy(int n) { 12 int low = n; 13 int fast = n; 14 do{ 15 low = sum(low); 16 fast = sum(fast); 17 fast = sum(fast); 18 }while(low!=fast); 19 if(low==1){ 20 return true; 21 } 22 return false; 23 } 24 }
标签:10,202,int,sum,fast,链表,快乐,low,隐藏 来源: https://www.cnblogs.com/jsuxk/p/16473229.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。