1432 改變乙個整數能得到的最大差值

2021-10-19 09:11:00 字數 1515 閱讀 6901

題目描述:

給你乙個整數 num 。你可以對它進行如下步驟恰好 兩次 :

選擇乙個數字 x (0 <= x <= 9).

選擇另乙個數字 y (0 <= y <= 9) 。數字 y 可以等於 x 。

將 num 中所有出現 x 的數字都用 y 替換。

得到的新的整數 不能 有前導 0 ,得到的新整數也 不能 是 0 。

令兩次對 num 的操作得到的結果分別為 a 和 b 。

請你返回 a 和 b 的 最大差值 。

示例 1:

輸入:num = 555

輸出:888

解釋:第一次選擇 x = 5 且 y = 9 ,並把得到的新數字儲存在 a 中。

第二次選擇 x = 5 且 y = 1 ,並把得到的新數字儲存在 b 中。

現在,我們有 a = 999 和 b = 111 ,最大差值為 888

示例 2:

輸入:num = 9

輸出:8

解釋:第一次選擇 x = 9 且 y = 9 ,並把得到的新數字儲存在 a 中。

第二次選擇 x = 9 且 y = 1 ,並把得到的新數字儲存在 b 中。

現在,我們有 a = 9 和 b = 1 ,最大差值為 8

示例 3:

輸入:num = 123456

輸出:820000

示例 4:

輸入:num = 10000

輸出:80000

示例 5:

輸入:num = 9288

輸出:8700

1 <= num <= 10^8

方法1:

(1)先將原數進行分解,獲得各個位上的數字;

(2)分別找出最大數和最小數,相減即可;

class

solution

//找出最大數字,從最高位開始,找到非9的數字,對應的改為9

int cur=res.

back()

;for

(int i=res.

size()

-1;i>=0;

--i)

}int num1=0;

for(

int i=res.

size()

-1;i>=0;

--i)

else

}//找出最小數字

int num2=0;

if(res.

back()

==1)}

for(

int i=res.

size()

-1;i>=0;

--i)

else}}

else

else}}

return num1-num2;}}

;

乙個能改變你一生的故事

一天,乙個農民的驢子掉到了枯井裡。那可憐的驢子在井裡悽慘地叫了好幾個鐘頭,農民在井口急得團團轉,就是沒辦法把它救起來。最後,他斷然認定 驢子已經老了,這口枯井也該填起來了,不值得花這麼大的精力去救驢子。農民把所有的鄰居都請來幫他填井。大家抓起鐵鍬,開始往井裡填土。驢子很快就意識到發生了什麼事,起初,...

判斷乙個整數是否能被11整除

如果乙個整數在整型範圍內,直接用求餘符號就能搞定,但是如果這個整數比較大就要另尋他路了。有一種演算法叫做 奇偶位差法 意思就是在奇數字上的數字和與偶數字上的數字和做差,如果這個差的絕對值能被11整除,那麼這個數字就可以被11整除。include include includeint main if ...

得到乙個類的class物件

1.class的forname 方法的返回值就是class型別 2.class 類名 clazz 類名.class,例子 classclazz student.class 3.object 類中有乙個名為getclass的成員方法,返回的是物件執行時類的class物件。student stu new...