File tree Expand file tree Collapse file tree 5 files changed +108
-0
lines changed
longest-consecutive-sequence Expand file tree Collapse file tree 5 files changed +108
-0
lines changed Original file line number Diff line number Diff line change 1+ class Solution {
2+ public boolean containsDuplicate (int [] nums ) {
3+ // 중복 체크
4+ // 각 요소 순환
5+
6+ // 1. 배열 순환
7+ // 2. 2 이상 true 체크
8+
9+ // 자료구조 Map 사용
10+ HashMap <Integer , Integer > map = new HashMap <>();
11+
12+ for (int num : nums ) {
13+ //System.out.println(num);
14+ if (map .containsKey (num )) {
15+ return true ;
16+ }
17+
18+ map .put (Integer .valueOf (num ), Integer .valueOf (num ));
19+ }
20+
21+ return false ;
22+ }
23+ }
Original file line number Diff line number Diff line change 1+ class Solution {
2+ public int rob (int [] nums ) {
3+ if (nums .length == 0 ) return 0 ;
4+
5+ int prev1 = 0 ;
6+ int prev2 = 0 ;
7+ for (int num : nums ) {
8+ int tmp = prev1 ;
9+ prev1 = Math .max (prev2 + num , prev1 );
10+ prev2 = tmp ;
11+ }
12+ return prev1 ;
13+ }
14+ }
Original file line number Diff line number Diff line change 1+ class Solution {
2+ public int longestConsecutive (int [] nums ) {
3+ // 연속된 숫자 길이 파악
4+ // 연속된 거 어떻게?
5+ if (nums .length == 0 || nums == null ) return 0 ;
6+
7+ int result = 0 ;
8+
9+ Arrays .sort (nums );
10+
11+ int maxLen = 1 ;
12+ int len = 1 ;
13+
14+ for (int i = 1 ; i < nums .length ; i ++) {
15+ // 중복 체크
16+ if (nums [i ] == nums [i -1 ]) {
17+ continue ;
18+ }else if (nums [i ] == nums [i -1 ] + 1 ) {
19+ len ++;
20+ maxLen = Math .max (maxLen , len );
21+ }else {
22+ len = 1 ;
23+ }
24+ }
25+
26+ return maxLen ;
27+ }
28+ }
Original file line number Diff line number Diff line change 1+ class Solution {
2+ public int [] topKFrequent (int [] nums , int k ) {
3+ Map <Integer , Integer > counter = new HashMap <>();
4+ for (int n : nums ) {
5+ counter .put (n , counter .getOrDefault (n , 0 ) + 1 );
6+ }
7+
8+ PriorityQueue <Map .Entry <Integer , Integer >> heap = new PriorityQueue <>(
9+ (a , b ) -> Integer .compare (b .getValue (), a .getValue ())
10+ );
11+
12+ for (Map .Entry <Integer , Integer > entry : counter .entrySet ()) {
13+ heap .offer (entry );
14+ }
15+
16+ int [] res = new int [k ];
17+ for (int i = 0 ; i < k ; i ++) {
18+ res [i ] = Objects .requireNonNull (heap .poll ()).getKey ();
19+ }
20+
21+ return res ;
22+ }
23+ }
Original file line number Diff line number Diff line change 1+ class Solution {
2+ public int [] twoSum (int [] nums , int target ) {
3+ // 모든 경우의 수 체크
4+
5+ // 결과값
6+ int [] result = null ;
7+
8+ // 순회
9+ for (int i = 0 ; i < nums .length ; i ++){
10+ for (int j = i +1 ; j < nums .length ; j ++) {
11+ int sum = nums [i ] + nums [j ];
12+ if (sum == target ) {
13+ result = new int []{i , j };
14+ }
15+ }
16+ }
17+
18+ return result ;
19+ }
20+ }
You can’t perform that action at this time.
0 commit comments