Leetcode
2020.05.05 12:01

# 697. Degree of an Array

조회 수 473 추천 수 0 댓글 0
?

#### 단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

#### 단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

Given a non-empty array of non-negative integers `nums`, the degree of this array is defined as the maximum frequency of any one of its elements.

Your task is to find the smallest possible length of a (contiguous) subarray of `nums`, that has the same degree as `nums`.

Example 1:

```Input: [1, 2, 2, 3, 1]
Output: 2
Explanation:
The input array has a degree of 2 because both elements 1 and 2 appear twice.
Of the subarrays that have the same degree:
[1, 2, 2, 3, 1], [1, 2, 2, 3], [2, 2, 3, 1], [1, 2, 2], [2, 2, 3], [2, 2]
The shortest length is 2. So return 2.
```

Example 2:

```Input: [1,2,2,3,1,4,2]
Output: 6
```

Note:

• `nums.length` will be between 1 and 50,000.
• `nums[i]` will be an integer between 0 and 49,999.

• ```class Solution {
public int findShortestSubArray(int[] nums) {
Map<Integer, Integer> hmap = new HashMap<>();

int degree = -1;
//int number = nums[0];

for(int num : nums){
int count = hmap.getOrDefault(num, 0) + 1;
if(degree < count){
degree = count;
//number = num;
}
hmap.put(num, count);
}

int minVal = Integer.MAX_VALUE;

for(Map.Entry<Integer, Integer> item : hmap.entrySet()){
if(item.getValue() == degree){
int number = item.getKey();
int left = -1;
int right = -1;
int len = nums.length;
for(int i=0; i<len; i++){
if(nums[i] == number && left == -1){
left = i;
}

if(nums[len-1-i] == number && right == -1){
right = len - 1 - i;
}
}

len = right < left ? 0 : right - left + 1;
if(minVal > len){
minVal = len;
}
}
}

return minVal;
}
}```

?

 제목+내용제목내용댓글이름닉네임아이디태그
1. 720. Longest Word in Dictionary

2. 225. Implement Stack using Queues

3. 56. Merge Intervals

4. 844. Backspace String Compare

5. 222. Count Complete Tree Nodes

6. 697. Degree of an Array

7. 605. Can Place Flowers

8. 724. Find Pivot Index

9. 448. Find All Numbers Disappeared in an Array

10. 628. Maximum Product of Three Numbers

11. 532. K-diff Pairs in an Array

12. 897. Increasing Order Search Tree

13. 872. Leaf-Similar Trees

14. 876. Middle of the Linked List

15. 203. Remove Linked List Elements

16. 997. Find the Town Judge

17. 270. Closest Binary Search Tree Value

18. 687. Longest Univalue Path

19. 783. Minimum Distance Between BST Nodes

20. 235. Lowest Common Ancestor of a Binary Search Tree

Board Pagination Prev 1 2 3 4 Next
/ 4