給定正整數 n,找到若干個完全平方數(比如 1, 4, 9, 16, ...)使得它們的和等於 n。你需要讓組成和的完全平方數的個數最少。
示例 1:
輸入: n = 12
輸出: 3
解釋: 12 = 4 + 4 + 4.
示例 2:
輸入: n = 13
輸出: 2
解釋: 13 = 4 + 9.
from collections import deque
# bfs
class solution:
def numsquares(self, n: int) -> int:
queue = deque()
visited = set()
while queue:
num, step = queue.popleft()
targets = [num - i * i for i in range(1, int(num ** 0.5) + 1)]
for target in targets:
if target == 0:
return step + 1
if target not in visited:
visited.add(target)
279 完全平方數(BFS)
給定正整數 n,找到若干個完全平方數 比如 1,4,9,16,使得它們的和等於 n。你需要讓組成和的完全平方數的個數最少。這題有兩種解法,bfs 動態規劃 1 這題用bfs解題的關鍵是如何把題目要求轉換成資料結構 圖 我們這裡用的轉換條件是以0作為根節點,它的子節點應該滿足 i i 0 poll 被...
完全平方數
完全平方數 time limit 10000ms memory limit 65536k total submit 44 accepted 42 case time limit 1000ms description 由1 9九個數字組成的全排列可以被看作是乙個九位數,程式設計求出這些九位數中第n個完...
完全平方數
coding utf8 python3 題目 完全平方數 乙個整數,它加上100和加上268後都是乙個完全平方數 求該數是多少 數字 1,1000 中,符合條件的數 python sqrt num.py b 1 e 1000 import sys,getopt import math defint ...