国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

leetcode_169. Majority Element

2019-11-06 06:08:37
字體:
來源:轉載
供稿:網友

Given an array of size n, find the majority element. The majority element is the element that appears more than ? n/2 ? times.

You may assume that the array is non-empty and the majority element always exist in the array.

法1:網友方法,O(n) time O(1) space fastest solution

public int majorityElement(int[] num) { int major=num[0], count = 1; for(int i=1; i<num.length;i++){ if(count==0){ count++; major=num[i]; }else if(major==num[i]){ count++; }else count--; } return major; }

法2:先排序

public int majorityElement(int[] nums) { int half = (int) Math.ceil(nums.length/2.0); Arrays.sort(nums); int num =0; // 存放臨時的major值 int major =nums[nums.length-1]; for(int i=0;i<nums.length;i++) { if(major != nums[i]){ major= nums[i]; num=0; num++; } else num++; if(num>=half) return major; } return -2147483648; }

法3:借助 Map,用時最多

public int majorityElement(int[] nums) { int half = (int) Math.ceil(nums.length/2.0); // < 元素值,對應的次數> Map<Integer, Integer> map = new HashMap<>(); for(int i=0;i<nums.length;i++) { if(!map.containsKey(nums[i])) map.put(nums[i], 1); else map.replace(nums[i], map.get(nums[i]), map.get(nums[i])+1); } for(int t :map.keySet()) if(map.get(t)>=half) return t; return -2147483648; }
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 丰原市| 黄石市| 西贡区| 内丘县| 淮安市| 广饶县| 红桥区| 石渠县| 彩票| 四平市| 潞西市| 天门市| 介休市| 台前县| 娱乐| 宁南县| 梅州市| 应城市| 揭东县| 怀宁县| 青阳县| 土默特右旗| 北流市| 建德市| 科技| 虎林市| 长顺县| 临沂市| 抚远县| 柳河县| 余姚市| 黄冈市| 宝兴县| 佛教| 页游| 福泉市| 房产| 长治县| 冷水江市| 洛阳市| 绥化市|