您好,登錄后才能下訂單哦!
這篇文章主要介紹了LeetCode如何求眾數,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
1,問題簡述
給定一個大小為 n 的整數數組,找出其中所有出現超過 ? n/3 ? 次的元素。
2,示例
示例 1:
輸入:[3,2,3]
輸出:[3]
示例 2:
輸入:nums = [1]
輸出:[1]
示例 3:
輸入:[1,1,1,3,3,2,2,2]
輸出:[1,2]
提示:
1 <= nums.length <= 5 * 104
-109 <= nums[i] <= 109
3,題解思路
使用鍵值對集合HashMap來做
4,題解程序
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class MajorityElementTest3 {
public static void main(String[] args) {
int[] arr = {3, 2, 3};
List<Integer> list = majorityElement(arr);
System.out.println("list = " + list);
}
public static List<Integer> majorityElement(int[] nums) {
List<Integer> list = new ArrayList<>();
if (nums == null || nums.length == 0) {
return list;
}
Map<Integer, Integer> map = new HashMap<>();
for (int num : nums) {
map.put(num, map.getOrDefault(num, 0) + 1);
}
List<Integer> collect = map.entrySet().stream().filter(x -> x.getValue() > nums.length / 3).map(x -> x.getKey()).collect(Collectors.toList());
return collect;
}
}
5,題解程序圖片版
感謝你能夠認真閱讀完這篇文章,希望小編分享的“LeetCode如何求眾數”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。