亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

面試題

系統 1771 0

一道阿里電話面試中的算法題

文章分類: Java編程

電話面試算法題一道:找出數組中重復次數最多的元素并打印

問題不難,看你能給出更優的方案

Java代碼
  1. import java.util.HashMap;
  2. import java.util.Iterator;
  3. import java.util.Map.Entry;
  4. import commons.algorithm.sort.QuickSort;
  5. /**
  6. *找出數組中重復次數最多的元素并打印
  7. *
  8. */
  9. public class Problem_3{
  10. //先快速排序后循環查找O(n*log2(n)+n)
  11. public static void find1( int []arr){
  12. QuickSort.sort(arr);
  13. int max=arr[ 0 ];
  14. int pre= 1 ;
  15. int now= 1 ;
  16. for ( int i= 0 ;i<(arr.length- 1 );i++){
  17. if (arr[i]==arr[i+ 1 ])
  18. now++;
  19. else {
  20. if (now>=pre){
  21. pre=now;
  22. now= 1 ;
  23. max=arr[i];
  24. }
  25. }
  26. }
  27. }
  28. //嵌套循環查找O(n*n)
  29. public static void find2( int []arr){
  30. int pre= 0 ;
  31. int max=arr[ 0 ];
  32. for ( int i= 0 ;i<arr.length;i++){
  33. int now= 0 ;
  34. for ( int j= 0 ;j<arr.length;j++){
  35. if (arr[i]==arr[j]){
  36. now++;
  37. }
  38. }
  39. if (now>=pre){
  40. max=arr[i];
  41. pre=now;
  42. }
  43. }
  44. }
  45. //通過Hash方式
  46. public static void find3( int []arr){
  47. HashMap<Integer,Integer>hm= new HashMap<Integer,Integer>();
  48. for ( int i= 0 ;i<arr.length;i++){
  49. if (hm.containsKey(arr[i])){
  50. int count=hm.get(arr[i]);
  51. hm.put(arr[i],++count);
  52. } else {
  53. hm.put(arr[i], 1 );
  54. }
  55. }
  56. Iterator<Entry<Integer,Integer>>it=hm.entrySet().iterator();
  57. int pre= 0 ;
  58. int max=arr[ 0 ];
  59. while (it.hasNext()){
  60. Entry<Integer,Integer>en=it.next();
  61. int key=en.getKey();
  62. int val=en.getValue();
  63. if (val>pre){
  64. pre=val;
  65. max=key;
  66. }
  67. }
  68. }
  69. public static void main(Stringargs[]){
  70. //數據量800重復元素多,查找時候分別是:463680195
  71. int arr2[]={ 0 , 1 , 2 ,.....
  72. , 0 , 1 , 2 , 3 , 6 , 7 , 8 , 9 };
  73. //數據量800重復元素少,查找時間分別是823727360
  74. int arr[]={ 0 , 0 , 0 , 11 , 12 , 13 , 14 , 5 , 6 ......
  75. , 51 , 52 , 53 ,, 728 , 29 , 730 , 731 , 3 , 794 , 95 , 796 , 797 , 798 , 799 };
  76. long start,end;
  77. start=System.currentTimeMillis();
  78. for ( int i= 0 ;i< 1000 ;i++)find1(arr);
  79. end=System.currentTimeMillis();
  80. System.out.println(end-start);
  81. start=System.currentTimeMillis();
  82. for ( int i= 0 ;i< 1000 ;i++)find2(arr);
  83. end=System.currentTimeMillis();
  84. System.out.println(end-start);
  85. start=System.currentTimeMillis();
  86. for ( int i= 0 ;i< 1000 ;i++)find3(arr);
  87. end=System.currentTimeMillis();
  88. System.out.println(end-start);
  89. }
  90. }

面試題


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 四虎影视免费观看免费观看 | 女人夜色黄网在线观看 | 亚洲午夜国产精品无卡 | 福利在线视频观看 | 国产3级在线观看 | 97人人在线观看 | 欧美成视频一theporn | 日韩高清在线日韩大片观看网址 | 91精品全国免费观看 | 天天撸天天操 | 极品女神西比尔久久精品 | 精品乱人伦一区二区 | 四虎免费播放观看在线视频 | 草久影院| 擼擼色在线看观看免费 | 久色亚洲| 亚洲国产激情 | 美国一级毛片片免费 | 玖玖在线精品 | 国产成人在线视频播放 | 国产1区精品 | 亚洲精品一区二区 | 天天天做天天天天爱天天想 | 欧美区亚洲区 | 中文字幕日本不卡 | 精品哟哟哟国产在线观看不卡 | 毛片毛片毛片毛片毛片毛片毛片 | 亚洲性事 | 国产一在线精品一区在线观看 | 91精品免费国产高清在线 | 欧美色v| 夜夜夜夜猛噜噜噜噜噜 | 欧美日韩高清一区二区三区 | 国产精品久久久久久久久鸭 | 久热这里 | 狠狠色噜狠狠狠狠色综合久 | 久射网| 五月天在线网站 | 久久精品99精品免费观看 | 国产手机精品一区二区 | 久久久在线视频 |