摘要:集合法復雜度時間待定空間待定思路根據快樂數的計算方法,我們很難在有限步驟內確定一個數是否是快樂數,但使用排除法的話,我們可以嘗試確定一個數不是快樂數。根據題意,當計算出現無限循環的時候就不是快樂數。
Happy Number
集合法 復雜度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
1^2 + 9^2 = 82 8^2 + 2^2 = 68 6^2 + 8^2 = 100 1^2 + 0^2 + 0^2 = 1
時間 待定 空間 待定
思路根據快樂數的計算方法,我們很難在有限步驟內確定一個數是否是快樂數,但使用排除法的話,我們可以嘗試確定一個數不是快樂數。根據題意,當計算出現無限循環的時候就不是快樂數。出現無限循環的說明產生了相同的結果,而判斷相同結果只要用Set就行了。
代碼public class Solution { public boolean isHappy(int n) { Set后續 Follow Upset = new HashSet (); while(n!=1){ int sum = 0; while(n>0){ sum += (n % 10) * (n % 10); n = n / 10; } if(set.contains(sum)){ return false; } else { set.add(sum); } n = sum; } return true; } }
Q: 可不可以不用HashTable或者HashSet解決這題?
A: 可以,參考Linked List Cycle,我們可以記錄下每輪產生的結果,同時用快慢指針遍歷,一旦快慢指針相與便說明有環。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/66163.html
摘要:微信公眾號記錄截圖記錄截圖目前關于這塊算法與數據結構的安排前。已攻略返回目錄目前已攻略篇文章。會根據題解以及留言內容,進行補充,并添加上提供題解的小伙伴的昵稱和地址。本許可協議授權之外的使用權限可以從處獲得。 Create by jsliang on 2019-07-15 11:54:45 Recently revised in 2019-07-15 15:25:25 一 目錄 不...
摘要:月下半旬攻略道題,目前已攻略題。目前簡單難度攻略已經到題,所以后面會調整自己,在刷算法與數據結構的同時,攻略中等難度的題目。 Create by jsliang on 2019-07-30 16:15:37 Recently revised in 2019-07-30 17:04:20 7 月下半旬攻略 45 道題,目前已攻略 100 題。 一 目錄 不折騰的前端,和咸魚有什么區別...
摘要:在線網站地址我的微信公眾號完整題目列表從年月日起,每天更新一題,順序從易到難,目前已更新個題。這是項目地址歡迎一起交流學習。 這篇文章記錄我練習的 LeetCode 題目,語言 JavaScript。 在線網站:https://cattle.w3fun.com GitHub 地址:https://github.com/swpuLeo/ca...我的微信公眾號: showImg(htt...
Problem 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 squar...
摘要:思路先用將字符串分割,再遍歷,將字符串內每個單詞進行翻轉代碼題意給定一個字符串,將字符串按照翻轉,不翻轉的規則進行處理。思路先將字符串分段,然后再根據段落進行處理最后將字符串輸出。 344 Reverse String題意:給出一個字符串對字符串進行翻轉(reverse)思路:直接使用切片函數進行翻轉(網上看到的,具體怎么使用有點迷)[::-1]代碼:`class Solution(...
閱讀 1379·2023-04-25 18:34
閱讀 3437·2021-11-19 09:40
閱讀 2824·2021-11-17 09:33
閱讀 2935·2021-11-12 10:36
閱讀 2823·2021-09-26 09:55
閱讀 2653·2021-08-05 10:03
閱讀 2512·2019-08-30 15:54
閱讀 2861·2019-08-30 15:54