華為機(jī)考系列丨??兔刻煲粓?chǎng)·華為三道編程題社招校招留學(xué)生OD軟件測(cè)試算法工程師
點(diǎn)擊上方"清宇offer",選擇"設(shè)置關(guān)注or星標(biāo)"
第一時(shí)間獲取最實(shí)用的求職以及測(cè)評(píng)題庫(kù)信息
?






第一道解題思路:
這道題可以使用貪心算法來(lái)解決。對(duì)于小張手上有n個(gè)空汽水瓶,我們不斷地將它們交換成汽水,直到不能再交換為止。因?yàn)槊拷粨Q3個(gè)空汽水瓶可以獲得1瓶汽水,所以每次交換后空瓶數(shù)量會(huì)減少2個(gè)。假設(shè)交換k次,最后剩下m個(gè)空汽水瓶,則交換的總次數(shù)為k=n-m。注意到當(dāng)m=2時(shí),不能再交換,需要再向老板借一瓶空汽水瓶才能繼續(xù)交換。
第二道思路解析:
使用?Scanner
?讀取輸入,然后用一個(gè)?Set
(這里選用?TreeSet
)來(lái)存儲(chǔ)不重復(fù)的數(shù)字,自動(dòng)去重,然后使用?for-each
?循環(huán)遍歷輸出即可。
第三道思路解析:
題目要求將十六進(jìn)制的數(shù)轉(zhuǎn)換成十進(jìn)制的數(shù),這可以使用Java中的Integer.parseInt()方法完成。該方法接受兩個(gè)參數(shù),第一個(gè)參數(shù)是需要轉(zhuǎn)換的數(shù)的字符串形式,第二個(gè)參數(shù)是需要轉(zhuǎn)換的數(shù)的進(jìn)制。
因此,我們可以將輸入的十六進(jìn)制數(shù)作為第一個(gè)參數(shù)傳遞給該方法,將進(jìn)制16作為第二個(gè)參數(shù)傳遞給該方法。然后將返回值轉(zhuǎn)換成字符串,就可以輸出十進(jìn)制的數(shù)值。
交卷
本人985留學(xué)生博士在讀