如題,對於乙個陣列 int arr=;,含有10 12 2 三種數,每種數的個數分別為1,2,2
輸出的結果為10 出現過1次 12出現過兩次 2出現過兩次
想法:利用鍵值對儲存,鍵是陣列中不重複的值
值是那些數字出現的次數
遍歷這個陣列,對陣列的每乙個數都判斷這個數字之前出現過沒有。若沒出現過,加入鍵陣列,並且值加1.若出現過,遍歷鍵陣列
判斷在哪出現過,並且將其值加1
public class count;
int count=0; //記錄出現的型別總數
int jian=new int [arr.length];
int zhi=new int[arr.length];
int i=0;int j=0; //記錄鍵值的遞增
for(int a=0;aelse //出現過判斷是哪乙個鍵值對
else
zhi[temp]++;}}
system.out.println("出現過"+count+"種型別,分別是");
for(int u=0;u<=i-1;u++) //-1因為i有自增操作比長度大一
}public static boolean b(int arr,int n,int m)
return true;
}public static int nayi(int jian,int n)//判斷出現過的n在哪個鍵值對出現
return -1;}}
java 計算陣列中的最大,次大,最小,次小的數
求出最大最小,次大,次小 int nums int max nums 0 最大值 int min nums 0 最小值 for int i nums if i min int maxth nums 0 次大 int minth nums 0 次小 for int m nums if m minth ...
演算法32 計算陣列中的逆序對
設 a 1.n 是乙個陣列,如果對於 i j 有 a i a j 則 a i 和 a j 構成一對逆序。給定乙個陣列,計算陣列中逆序對的個數。例如陣列 a 則 是逆序對,返回 3。兩個 for 迴圈列舉所有的數對,如果是逆序對,則 count 最終返回 count 即可。時間複雜度 o n 2 如下...
歸併排序計算陣列中的逆序對
題目描述 在陣列中的兩個數字,如果前面乙個數字大於後面的數字,則這兩個數字組成乙個逆序對。輸入乙個陣列,求出這個陣列中的逆序對的總數p。並將p對1000000007取模的結果輸出。即輸出p 1000000007 輸入描述 題目保證輸入的陣列中沒有的相同的數字 資料範圍 對於 50的資料,size 1...