【Leetcode】507. 完美數
題目描述:
對於一個 正整數,如果它和除了它自身以外的所有正因子之和相等,我們稱它為“完美數”。
給定一個 正整數 n
, 如果他是完美數,返回 True
,否則返回 False
示例:
輸入: 28
輸出: True
解釋: 28 = 1 + 2 + 4 + 7 + 14
注意:
輸入的數字 n
不會超過 100,000,000. (1e8)
解題思路:
找因子,注意迴圈截止,i*i就行了,不然會超時。
AC程式碼:
class Solution { public: bool checkPerfectNumber(int num) { if (num == 0||num == 1) return false; int sum = 0; for (int i = 1; i*i <= num; i++) { if (num%i == 0) sum =sum + i + num/i; } return sum ==2*num ? true : false; } };
相關推薦
【Leetcode】507. 完美數
題目描述: 對於一個 正整數,如果它和除了它自身以外的所有正因子之和相等,我們稱它為“完美數”。 給定一個 正整數 n, 如果他是完美數,返回 True,否則返回 False 示例: 輸入: 28 輸出: True 解釋: 28 = 1 + 2 + 4 + 7 + 1
【leetcode】507.Perfect Number
log 我們 技術分享 sel span inf break 思路 排除 題目如下: 解題思路:因為n的最大值是1e8,所以暴力計算是不行的。首先,我們可以排除掉素數,因為素數的整數因子只有1和自己本身,所以累加的和肯定是1。對於非素數,我們首先找到它的最小整數因子,例如2
【LeetCode】求眾數
spa def style col majority leet target 其中 出現 給定一個大小為 n 的數組,找到其中的眾數。眾數是指在數組中出現次數大於 ? n/2 ? 的元素。 你可以假設數組是非空的,並且給定的數組總是存在眾數。 class Solution
【LeetCode】回文數
沒有 思考 -i != code string turn for bool class Solution { public: bool isPalindrome(int x) { string str; str=to_string(
【LeetCode】264. 醜數 II
題目連結:https://leetcode-cn.com/problems/ugly-number-ii/description/ 題目描述 編寫一個程式,找出第 n 個醜數。 醜數就是隻包含質因數 2, 3, 5 的正整數。 示例 輸入: n = 10 輸出: 12
【LeetCode】15 三數之和3Sum
給定一個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c ,使得 a + b + c = 0? 找出所有滿足條件且不重複的三元組。 注意:答案中不可以包含重複的三元組。 例如, 給定陣列 nums = [-1, 0, 1, 2, -1, -4], 滿足
【LeetCode】 2 兩數相加
解題思路: 1 每個節點相加的結果需要一個進位flag,注意置空。 2 以前的思路是當某個連結串列加完之後,再在結果上接上另一個連結串列即可,但是此題存在連續進位問題。 3 所以讓指到結尾的連結串列指標(為null)陪跑即可,即如果null則加0,這樣可以保持程式的一致性。
【LeetCode】迴文數
判斷一個整數是否是迴文數。迴文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。 示例 1: 輸入: 121 輸出: true 示例 2: 輸入: -121 輸出: false 解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此它不是一個迴
【LeetCode】#15三數之和(3Sum)
【LeetCode】#15三數之和(3Sum) 題目描述 給定一個包含 n 個整數的陣列 nums,判斷 nums 中是否存在三個元素 a,b,c ,使得 a + b + c = 0 ?找出所有滿足條件且不重複的三元組。 注意:答案中不可以包含重複的三元組。 示例 例如, 給
【LeetCode】633. 平方數之和(Sum of Square Numbers)
【 英文練習 | 中文練習 】 題目描述: 給定一個非負整數 c ,你要判斷是否存在兩個整數 a 和 b,c 等於 a 和 b 的平方和。 示例: 輸入: 5 輸出: True 解釋: 1 * 1 + 2 * 2 = 5 解法一: 利用雙指標的思想,需要注意兩個坑點,一
【LeetCode】167. 兩數之和 Ⅱ - 輸入有序陣列(Two Sum II - Input array is sorted)
【 英文練習 | 中文練習 】 題目描述: 給定一個已按照升序排列 的有序陣列,找到兩個數使得它們相加之和等於目標數,函式應該返回這兩個下標值 index1 和 index2,其中 index1 必須小於 index2。 說明: 返回的下標值(index1 和 ind
【leetcode】202.快樂數
編寫一個演算法來判斷一個數是不是“快樂數”。 一個“快樂數”定義為:對於一個正整數,每一次將該數替換為它每個位置上的數字的平方和,然後重複這個過程直到這個數變為 1,也可能是無限迴圈但始終變不到 1。如果可以變為 1,那麼這個數就是快樂數。 示例: 輸入
【leetcode】有效的數獨(Python解答)
題目: 判斷一個 9x9 的數獨是否有效。只需要根據以下規則,驗證已經填入的數字是否有效即可。 數字 1-9 在每一行只能出現一次。 數字 1-9 在每一列只能出現一次。 數字 1-9 在每一個
【LeetCode】18. 四數之和
題目描述 給定一個包含 n 個整數的陣列 nums 和一個目標值 target,判斷 nums 中是否存在四個元素 a,b,c 和 d ,使得 a + b + c + d 的值與 target 相等?
【LeetCode】1. 兩數之和
給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數。 你可以假設每個輸入只對應一種答案,且同樣的元素不能被重複利用。 示例: 給定 nums = [2, 7, 11, 15], target = 9 因為 nums[0] + nums[1] = 2
【leetCode】18_四數之和
雙指標法。 class Solution { public: vector<vector<int>> fourSum(vector<int>& nums, int target) { vector<v
【LeetCode】306. 累加數 結題報告 (C++)
原題地址:https://leetcode-cn.com/problems/additive-number/ 題目描述: 累加數是一個字串,組成它的數字可以形成累加序列。 一個有效的累加序列必須至少包含 3 個數。除了最開始的兩個數以外,字串中的其他數都等於它之前兩個數相加的和。 給
【LeetCode】445. 兩數相加 II
題目描述 給定兩個非空連結串列來代表兩個非負整數。數字最高位位於連結串列開始位置。它們的每個節點只儲存單個數字。將這兩數相加會返回一個新的連結串列。 你可以假設除了數字 0 之外,這兩個數字都不會以零
【LeetCode】263. 醜數
題目描述 編寫一個程式判斷給定的數是否為醜數。 醜數就是隻包含質因數 2, 3, 5 的正整數。 示例 輸入: 6 輸出: true 解釋: 6 = 2 × 3 輸入: 14 輸出: false 解釋
【LeetCode】數組-2(628)-數組中三個數相乘最大
負數 [] product leet ont 沒有 程序 時間復雜度 array 題目不難: 思路一(排序取兩端) 先排序,最後三個數相乘即可。(很快就想到了,但是沒想全面 [??] ) 缺陷:沒有考慮到有負數的情況,當至少有兩個負數時,需要判斷 最大數乘兩個最小的負數 和