關於乙個演算法題的兩點新思路

2021-06-25 14:47:35 字數 1354 閱讀 3190

在網上看到乙個演算法題,不是很難,搜一下也有解決辦法,但是一般都是幾層for迴圈,試著寫了下

/**

* 給你一組字串 如 ,讓你輸出裡面出現次數最多且數值最大的乙個,出現幾次

* 優點:時間複雜度為o(n)

* 缺點:產生一些多餘的空間,如 6,7,8沒有的數也會分配乙個陣列空間,但是基本可以忽略

* 限制:需要預先知道最大的值是多少,或者說小於多少,這樣才好確定預先分配乙個陣列長度是多少

*/public static void method1();

int nums = new int[10];//0-9,此處若陣列中的最大值為 123,則陣列長度應為 >= 124

for (int i = 0; i < datas.length; i++)

int maxtime = 0;

for (int i = 0; i < nums.length; i++)

}system.out.println("最多的出現"+maxtime+"次");

int num = 0;

for (int i = 0; i < nums.length; i++)

}system.out.println("出現次數最多:"+maxtime+"次;且最大的數是:"+num);

}/**

* 給你一組字串 如 ,讓你輸出裡面出現次數最多且數值最大的乙個,出現幾次

* 優點:時間複雜度為o(n)

* 缺點:暫時沒發現

*/public static void method2();

mapmap = new hashmap();

for (int i = 0; i < datas.length; i++) else

}

int maxtime = 0;

int maxtime_num = 0;

setkeyset = map.keyset();

iteratorit = keyset.iterator();

while(it.hasnext())}}

system.out.println("出現次數最多:"+maxtime+"次;且最大的數是:"+maxtime_num);

}

列印:

0:01:2

2:33:1

4:15:3

6:07:0

8:09:0

最多的出現3次

出現次數最多:3次;且最大的數是:5

-----------

1:22:3

3:14:1

5:3出現次數最多:3次;且最大的數是:5

兩者的區別應該一下就看出來了

Android 乙個兩點觸控的案例

下面是乙個兩點觸控的案例 package com.zzj import import android.os.bundle import android.view.motionevent public class androidtestactivity extends activity public ...

關於Top n演算法問題的乙個思路

top n問題一直是面試熱點,舉個栗子,100000個無序數字,怎麼找出最大的前10個?如果用氣泡排序的話,就要比較100000 100000次,很顯然不行,這是最差的情況下,那麼最好的情況也要至少遍歷一遍,也就是100000次,所以,複雜度就是越接近十萬次越好。可以這樣 取前十個數,用插入排序從大...

移除乙個面上的節點 , 根據兩點間距

在乙個平面中有多個面互相緊湊拼接在一起,由於每乙個面上的節點數量不同,並且相鄰點距離過近,需要抽稀節點。需要把其中的節點刪除,在刪除後每乙個面還需要緊密相連。獲取每乙個面上的點,並且計算相鄰兩點之間的距離 距離大於容差 距離大於容差部分不操作 距離小於等於容差 距離小於等於容差部分進行操作,刪除其中...