LeetCode
来源:互联网 发布:海关数据分析公务员 编辑:程序博客网 时间:2024/06/06 05:50
Write an algorithm to determine if a number is "happy".
A happy number is a number defined by the following process: Starting with any positive integer, replace the number by the sum of the squares of its digits, and repeat the process until the number equals 1 (where it will stay), or it loops endlessly in a cycle which does not include 1. Those numbers for which this process ends in 1 are happy numbers.
Example: 19 is a happy number
- 12 + 92 = 82
- 82 + 22 = 68
- 62 + 82 = 100
- 12 + 02 + 02 = 1
评论区的做法比较合理,不过心里有个疑问,如果slow和fast永远不等呢?如果有大神能证明这个算法的绝对正确性千万记得告诉窝!时间复杂度O(不会算orz),空间复杂度O(1)
class Solution {public: bool isHappy(int n) { int flag = false; int cntsum = 0; while (cntsum < 100) { cntsum++; int cnt = 0; while (n) { int x = n % 10; cnt += x * x; n = n / 10; } if (cnt == 1) { flag = true; break; } n = cnt; } if (flag) return true; return false; }};
int digitSquareSum(int n) { //评论区做法 int sum = 0, tmp; while (n) { tmp = n % 10; sum += tmp * tmp; n /= 10; } return sum;}bool isHappy(int n) { int slow, fast; slow = fast = n; do { slow = digitSquareSum(slow); fast = digitSquareSum(fast); fast = digitSquareSum(fast); } while(slow != fast); if (slow == 1) return 1; else return 0;}
阅读全文
0 0
- leetcode
- [leetcode]
- LeetCode
- leetcode
- leetcode
- leetcode:
- leetcode:
- LeetCode
- leetcode
- LEETCODE
- leetcode
- leetCode
- leetcode
- [leetcode]
- LeetCode
- leetcode
- leetcode:
- leetcode
- GIT提交遇到问题 Push rejected: Push to origin/master was rejected
- Android Studio中添加重载函数的方法
- activiti工作流的相关方法
- Java_基础—去除ArrayList中重复自定义对象元素
- CGI、FastCGI、php-fpm个人理解
- LeetCode
- powerDesigner 取消name 和code 同步 版本号 16.5
- mysql timeout参数详解2
- Linux文件属性2——使用stat函数获取文件属性
- C语言strcpy()函数:复制字符串
- Linux内核启动及文件系统加载过程
- PHP源码分析-全局变量
- spark structured streaming的source解析与自定义
- 538. Convert BST to Greater Tree