在顯示著數字的壞計算器上,我們可以執行以下兩種操作:
返回顯示數字 y 所需的最小運算元。
示例1:
輸入:x = 2, y = 3
輸出:2
解釋:先進行雙倍運算,然後再進行遞減運算 .
示例2:
輸入:x = 5, y = 8
輸出:2
解釋:先遞減,再雙倍 .
示例3:
輸入:x = 3, y = 10
輸出:3
解釋:先雙倍,然後遞減,再雙倍 .
示例4:
輸入:x = 1024, y = 1
輸出:1023
解釋:執行遞減運算 1023 次
解題思路:因為x可以乘2或者減1,反過來就是y可以除2或者加1,那我們就從y出發,貪心的選擇除2操作就可以了,問題是該如何貪心
也就是說,當y為偶數時,我們執行除法操作,當y為奇數時,我們執行加法操作,之後,我們需要執行x-y次加法操作得到x
**如下:
class solution
return ans + x - y;
}}
感覺貪心演算法有點難以理解,這道題我在做的時候已經意識到,x的每一次減法在多次的乘2操作後會變得更有"價值",但是我卻不知道,應該怎麼貪心,也就是為什麼我不要進行乘法反而進行減法,而且我應該減去多少,這個減法是否有價值,是否會對結果產生正向的影響,我覺得這是貪心演算法難的地方 leetcode 991 壞了的計算器
在顯示著數字的壞計算器上,我們可以執行以下兩種操作 最初,計算器顯示數字x。返回顯示數字y所需的最小運算元。示例 1 輸入 x 2,y 3輸出 2解釋 先進行雙倍運算,然後再進行遞減運算 示例 2 輸入 x 5,y 8輸出 2解釋 先遞減,再雙倍 示例 3 輸入 x 3,y 10輸出 3解釋 先雙倍...
比簡易計算器更簡便的計算器???
看到了乙個大佬博主發的用c語言做的簡便計算器,看了之後覺得還是很麻煩,太多行了。後來就自己試著做了乙個,減了幾十行 不包括視覺優化 萌新勿噴,謝謝。那個大佬博主用了好多我還不太會打的 但是我覺得完全沒有必要。不知道是不是我想的太簡單,但是我打的 和他打的 效果完全沒有任何區別。好吧但是人家可以炫技我...
簡單的計算器
using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.linq using system.text u...