題目描述:
乙個陣列中只有乙個數出現了1次,其他的數都出現了k次,請輸出出現了1次的那個數。
原理:k個相同的k進製數之間做不進製的加法,結果為0,如,2個2得0 ,10個5得0 .......
解題思路:
將所有的數轉化成為k進製,然後做k進製的不進製加法運算,得出的結果再有k進製轉換位10進製。
解題步驟:
第一步: 建立乙個二維陣列,用來儲存k進製數。
第二步:轉換承k進製陣列。
第三步:進行不進製的加法運算,結果得出再resarray陣列中。
第四步:對resarray陣列遍歷,進行10進製轉換運算。
第五步:輸出結果。
關鍵**:
publicclass
出現k次與出現1次 ;
//第一步:建立乙個二維字元陣列,用來儲存k進製位數
int len =arr.length;
char ch =new
char
[len];
//第二步:轉換成k進製陣列
int k =3; int maxlen=0;
for(int i=0;i)
}//第三步:進行不進製加法運算,結果得出再resarray中
int resarray = new
int[maxlen];
for (int i = 0; i < len; i++)
else}}
//第四步:對resarray陣列遍歷,進行10進製轉換運算
int res=0;
for(int i=0;i)
//第五步:輸出結果
system.out.println(res);
}}
出現k次與出現1次
問題描述 陣列中只有乙個數出現了1次,其他的數都出現了k次,請輸出只出現1次的數。解題思路 陣列a中,除了某乙個數字x之外,其他數字都出現了三次,而x出現了一次。請給出最快的方法找到x。應該如何思考呢?如果是兩個相同的就可以利用兩個相同的數異或結果為0來計算的,但這個題目中其他數字是出現了3次,因此...
出現k次與出現1次《演算法很美》
具體思路 建立乙個字元二維陣列char kradix new char len 將arr的每乙個數轉換成三進製integer.tostring arr i k 並進行翻轉 變為字串 最後整成字元陣列 同時要將最長的三進製數長度儲存if kradix i length maxlen maxlen kr...
0 400中1出現了多少次?
今天小菜無意間在社群看到乙個討論 0 400中1出現了多少次?小菜看到大部分給出的演算法是基於字串的處理,思路大致是 把所有數字拼接成乙個字串,然後對字串進行處理,進而獲取出現次數。例如以下 1 2 版本 3 找出 1 出現的次數4 5function numbercount1 n 10var s ...