Majority Element - LeetCode
Can you solve this real interview question? Majority Element - Given an array nums of size n, return the majority element. The majority element is the element that appears more than ⌊n / 2⌋ times. You may assume that the majority element always exists
leetcode.com
1.아이디어
int 배열 nums[]가 주어졌을 때 nums에서 가장 많이 등장하는 수를 리턴하는 문제이다.
해쉬맵으로 키가 Integer, 값도 Integer인 맵을 선언한다.
배열을 순회하면서 배열의 각 인덱스에 등장하는 수를 맵의 키로 쓰고 등장 할때마다 값을 1씩 더해주면 배열 각 요소의 가장 많은 수를 기록할 수 있다.
2.도식화
배열 nums[]에 3,2,3이 주어졌다면 3은 두 번 등장하고 2는 한번 등장하기 때문에 map의 key에 해당하는 값을 비교하고 값이 가장 큰 key 3을 리턴할 수 있다.
3.소스코드
import java.util.*;
class Solution {
public int majorityElement(int[] nums) {
Map<Integer, Integer> map = new HashMap<>();
int m = 0;
for(int i = 0; i < nums.length; i++)
{
map.put(nums[i], 0);
}
int result = 0;
for(int i = 0; i < nums.length; i++)
{
int temp = map.get(nums[i]);
map.put(nums[i], ++temp);
}
for(int key : map.keySet())
{
if(m < map.get(key))
{
m = map.get(key);
result = key;
}
}
return result;
}
}
'ALGORITHM > 릿코드' 카테고리의 다른 글
릿코드 1.TWO SUM (0) | 2024.01.03 |
---|---|
383. Ransom Note (0) | 2023.11.03 |
102. Binary Tree Level Order Traversal (0) | 2023.11.02 |
88. Merge Sorted Array (0) | 2023.11.01 |
637. Average of Levels in Binary Tree (0) | 2023.11.01 |