File tree Expand file tree Collapse file tree 5 files changed +99
-0
lines changed
longest-consecutive-sequence Expand file tree Collapse file tree 5 files changed +99
-0
lines changed Original file line number Diff line number Diff line change 1+ /*
2+ time complexity : O(n)
3+ space complexity : O(n)
4+ */
5+ class Solution {
6+ public boolean containsDuplicate (int [] nums ) {
7+ HashSet <Integer > uniqueNums = new HashSet <Integer >();
8+
9+ for (int num :nums ) {
10+ if (!uniqueNums .add (num )) {
11+ return true ;
12+ }
13+ }
14+ return false ;
15+ }
16+ }
Original file line number Diff line number Diff line change 1+ /*
2+ time complexity : O(n)
3+ space complexity : O(n)
4+ */
5+ class Solution {
6+ public int rob (int [] nums ) {
7+ int [] dp = new int [nums .length + 1 ];
8+ dp [0 ] = 0 ;
9+ dp [1 ] = nums [0 ];
10+ for (int i = 2 ; i < dp .length ; i ++) {
11+ dp [i ] = Math .max (dp [i - 1 ], dp [i - 2 ] + nums [i - 1 ]);
12+ }
13+ return dp [dp .length - 1 ];
14+ }
15+ }
Original file line number Diff line number Diff line change 1+ /*
2+ time complexity : O(n)
3+ space complexity : O(n)
4+ */
5+ class Solution {
6+ public int longestConsecutive (int [] nums ) {
7+ int maxLen = 0 ;
8+ Set <Integer > numSet = new HashSet <Integer >();
9+ for (int num : nums ) {
10+ numSet .add (num );
11+ }
12+
13+ for (int num : numSet ) {
14+ if (!numSet .contains (num - 1 )){
15+ int continueCnt = 1 ;
16+ int current = num ;
17+
18+ while (numSet .contains (current + 1 )) {
19+ current ++;
20+ continueCnt ++;
21+ }
22+ maxLen = Math .max (continueCnt , maxLen );
23+ }
24+ }
25+ return maxLen ;
26+ }
27+ }
Original file line number Diff line number Diff line change 1+ /*
2+ time complexity : O(nlogn)
3+ space complexity : O(n)
4+ */
5+ class Solution {
6+ public int [] topKFrequent (int [] nums , int k ) {
7+ HashMap <Integer , Integer > numMap = new HashMap <>();
8+ for (int num :nums ) {
9+ if (numMap .containsKey (num )) {
10+ int value = numMap .get (num );
11+ numMap .put (num , value + 1 );
12+ } else {
13+ numMap .put (num , 1 );
14+ }
15+ }
16+ List <Map .Entry <Integer , Integer >> entryList = new ArrayList <>(numMap .entrySet ());
17+ entryList .sort ((a , b ) -> b .getValue () - a .getValue ());
18+ int [] result = new int [k ];
19+ for (int i = 0 ; i < k ; i ++) {
20+ result [i ] = entryList .get (i ).getKey ();
21+ }
22+ return result ;
23+ }
24+ }
Original file line number Diff line number Diff line change 1+ /*
2+ time complexity : O(n)
3+ space complexity : O(n)
4+ */
5+ class Solution {
6+ public int [] twoSum (int [] nums , int target ) {
7+ HashMap <Integer , Integer > sumMap = new HashMap <>();
8+ for (int i = 0 ; i < nums .length ; i ++) {
9+ int secondNum = target - nums [i ];
10+ if (sumMap .containsKey (secondNum )) {
11+ return new int [] { sumMap .get (secondNum ), i };
12+ }
13+ sumMap .put (nums [i ], i );
14+ }
15+ return new int [] {};
16+ }
17+ }
You can’t perform that action at this time.
0 commit comments