leedcode 每日一题 202. Happy Number
2016-03-11 15:44
489 查看
差点想要用递归去做···还好臭臭告诉我了···
题目的意思是,19的每一位平方加和之后,再继续,最后如果得到1,则是happy数。
在做这道题之前有个误区,就是觉得,怎么判断这个数不是happy数呢?如果不是,它一定是个循环,但是循环其实是有一个开始的,
比如4,它一直在循环,但是并不一定返回4,而之前我认为需要返回4才可以判断false。
事后证明需要比较过程中出现的每个数是否出现过两次。于是用到了set
unordered_set<int> mySet;
mySet.insert(n);
if(mySet.count(n)>0) return false;
主要用到这三句
//count(value)返回set对象内元素值为value的元素个数
题目的意思是,19的每一位平方加和之后,再继续,最后如果得到1,则是happy数。
在做这道题之前有个误区,就是觉得,怎么判断这个数不是happy数呢?如果不是,它一定是个循环,但是循环其实是有一个开始的,
比如4,它一直在循环,但是并不一定返回4,而之前我认为需要返回4才可以判断false。
事后证明需要比较过程中出现的每个数是否出现过两次。于是用到了set
unordered_set<int> mySet;
mySet.insert(n);
if(mySet.count(n)>0) return false;
主要用到这三句
//count(value)返回set对象内元素值为value的元素个数
class Solution { public: bool isHappy(int n) { unordered_set<int> mySet; while(true){ if(n==1) return true; if(mySet.count(n)>0) return false; mySet.insert(n); //insert在判断count之后,因为一开始插入之后,会影响count结果 n=addnum(n); } } int addnum(int n){ int tmp; int cnt=0; while(n!=0){ tmp=n%10; cnt+=tmp*tmp; n=n/10; } return cnt; } };
相关文章推荐
- 判断移动端设备
- iOS-各种报错,各种error
- 二维码下载,区分是 ios 和 android
- Android Studio系列教程四--Gradle基础
- 打包测试 之 之 iOS Provisioning Profile(Certificate)与Code Signing详解
- Android Quantity Strings 的 getQuantityString方法取值问题
- 使用SwipeBackLayout过程中设置windowIsTranslucent遇到滑动显示手机桌面问题
- 将Eclipse代码导入到AndroidStudio的两种方式
- 解决 android studio .9图报错
- JAVA出现警告无法读取 AppletViewer 属性文件的解决方法
- Android横竖屏切换总结
- iOS8系统H264视频硬件编解码说明
- 判断Android程序是否在后台中运行
- iOS 通过(lame)将录制音频转换成Mp3
- Android 动画播放时退出或隐藏界面时报错
- 学习手机游戏开发的两个方向 Cocos2d-x 和 Unity 3D/2D,哪个前景更好?
- IOS开发 Missing submodule 'XXXX' 警告
- Android InputStream转Bitmap
- 学Cocos2d-x,让移动游戏开发更简单
- iOS的直播怎么做