一開始看著毫無頭緒。
target 正負號不影響結果
假設所有的step都向右的和為s,這時轉換乙個數字n向左,即減去這個數字的兩倍(s - 2 * n)
最多只有乙個數字向左,即可達到target
因為 s 需要減去乙個偶數2*n,所以target 與 s 必須同為偶數,或者奇數
完成
class
solution
(object):
defreachnumber
(self, target)
: target =
abs(target)
n =int(math.ceil(math.sqrt(1+
8* target)/2
-0.5))
# 一元二次方程的解
while target %
2!= n *
( n +1)
/2%2
:# 同為奇數/偶數
n +=
1return n
按照上面的思路,我組織了如下的**:
class
solution
(object):
defreachnumber
(self, target)
:"""
:type target: int
:rtype: int
"""n=
1 target=
abs(target)
if target==1:
return
1while n*(1
+n)n+=
1print
(n)while n*(1
+n)/2%
2!=target%2:
n+=1return n
nyoj 754 黑心醫生
描述 南陽有一家灰常勢利的醫院,這家醫院有乙個灰常勢利的門診醫生,由於他的醫術比較高明,所以每天都有很多人來看他的門診。但是,他很勢利,所以他看病有乙個規矩,那就是優先給有錢的人看病。他事先了解了掛他的號的病人的家庭經濟情況,所以,當輪到某病人就診時,如果剩下的病人裡有比他更富有的病人,那麼他就必須...
7 54 福到了 (15 分)
7 54 福到了 15 分 福 字倒著貼,寓意 福到 不論到底算不算民俗,本題且請你編寫程式,把各種漢字倒過來輸出。這裡要處理的每個漢字是由乙個 n n 的網格組成的,網格中的元素或者為字元 或者為空格。而倒過來的漢字所用的字元由裁判指定。輸入格式 輸入在第一行中給出倒過來的漢字所用的字元 以及網格...
754 平方矩陣 II
輸入整數n,輸出乙個n階的二維陣列。陣列的形式參照樣例。輸入格式 輸入包含多行,每行包含乙個整數n。當輸入行為n 0時,表示輸入結束,且該行無需作任何處理。輸出格式 對於每個輸入整數n,輸出乙個滿足要求的n階二維陣列。每個陣列佔n行,每行包含n個用空格隔開的整數。每個陣列輸出完畢後,輸出乙個空行。資...