File tree Expand file tree Collapse file tree 5 files changed +87
-0
lines changed
longest-consecutive-sequence Expand file tree Collapse file tree 5 files changed +87
-0
lines changed Original file line number Diff line number Diff line change 1+ class Solution {
2+ public boolean containsDuplicate (int [] nums ) {
3+ Set <Integer > set = new HashSet <>();
4+
5+ for (int i = 0 ; i < nums .length ; i ++) {
6+ if (i > 0 && set .contains (nums [i ])) {
7+ return true ;
8+ }
9+ set .add (nums [i ]);
10+ }
11+ return false ;
12+ }
13+ }
Original file line number Diff line number Diff line change 1+ class Solution {
2+ public int rob (int [] nums ) {
3+ int numsLen = nums .length ;
4+ int [] dp = new int [numsLen ];
5+
6+ if (numsLen == 1 ) return nums [0 ];
7+ dp [0 ] = nums [0 ];
8+ dp [1 ] = Math .max (nums [0 ], nums [1 ]);
9+
10+ for (int i = 2 ; i < numsLen ; i ++){
11+ dp [i ] = Math .max (dp [i -2 ] + nums [i ], dp [i -1 ]);
12+ }
13+ return dp [numsLen -1 ];
14+ }
15+ }
Original file line number Diff line number Diff line change 1+ /** 시간초과 발생합니다. 해법 찾는 중입니다 */
2+ class Solution {
3+ public int longestConsecutive (int [] nums ) {
4+
5+ Set <Integer > uniqueNum = new HashSet <>();
6+ for (int num : nums ) { // 수열 내 중복 숫자 제거
7+ uniqueNum .add (num );
8+ }
9+
10+ int uniqueLen = uniqueNum .size ();
11+ int longest = 0 ;
12+
13+ for (int targetNum : uniqueNum ){
14+
15+ int n = 1 ;
16+ for (int j = targetNum + 1 ; j < targetNum + uniqueLen ; j ++) {
17+ if (!uniqueNum .contains (j )) break ;
18+ n ++;
19+ }
20+ longest = Math .max (n , longest );
21+
22+ }
23+ return longest ;
24+ }
25+ }
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 > map = new HashMap <>();
4+ for (int i = 0 ; i < nums .length ; i ++) {
5+ map .put (nums [i ], map .getOrDefault (nums [i ], 0 ) + 1 );
6+ }
7+ // value 를 기준으로 정렬
8+ List <Map .Entry <Integer , Integer >> entrySet = new ArrayList <>(map .entrySet ());
9+ entrySet .sort ((a , b ) -> b .getValue ().compareTo (a .getValue ()));
10+
11+ int [] result = new int [k ];
12+ for (int i = 0 ; i < k ; i ++) {
13+
14+ result [i ] = entrySet .get (i ).getKey ();
15+ }
16+ return result ;
17+ }
18+ }
Original file line number Diff line number Diff line change 1+ class Solution {
2+ public static int [] twoSum (int [] nums , int target ) {
3+ HashMap <Integer , Integer > map = new HashMap <>();
4+
5+ for (int first = 0 ; first < nums .length ; first ++) {
6+ int targetKey = target - nums [first ];
7+ if (map .containsKey (targetKey )) {
8+ int second = map .get (targetKey );
9+ return new int []{second , first };
10+ }
11+ map .put (nums [first ], first );
12+ }
13+
14+ return null ;
15+ }
16+ }
You can’t perform that action at this time.
0 commit comments