日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Leetcode 202.快乐数(哈希容器来检测是否出现重复)

發布時間:2024/9/27 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Leetcode 202.快乐数(哈希容器来检测是否出现重复) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

傳送門:力扣

所學知識:

1.求和過程,去數值的單數操作,使用while(n)來操作。很強。

int getSum(int n) {int sum = 0;while (n) {sum += (n % 10) * (n % 10);n /= 10;}return sum;}

2.通過unordered_set哈希容器來檢測是否進入無限循環中。

if(set.find(sum)!=end()){return false; }

而且哈希容器所需要的內存空間比數組要高。所以并不是所有題目都無腦使用哈希容器

代碼:

#define _CRT_SECURE_NO_WARNINGS 1 #include<iostream> #include<unordered_set> using namespace std;class Solution { public:// 取數值各個位上的單數之和int getSum(int n) {int sum = 0;while (n) {sum += (n % 10) * (n % 10);n /= 10;}return sum;}bool isHappy(int n) {unordered_set<int> set;while (1) {int sum = getSum(n);if (sum == 1) {return true;}// 如果這個sum曾經出現過,說明已經陷入了無限循環了,立刻return falseif (set.find(sum) != set.end()) {return false;}else {set.insert(sum);}n = sum;}} }; int main() {Solution solution;cout << solution.isHappy(19) << endl; }

總結

以上是生活随笔為你收集整理的Leetcode 202.快乐数(哈希容器来检测是否出现重复)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。