File tree Expand file tree Collapse file tree 5 files changed +144
-0
lines changed
product-of-array-except-self
validate-binary-search-tree Expand file tree Collapse file tree 5 files changed +144
-0
lines changed Original file line number Diff line number Diff line change 1+ import java .util .ArrayList ;
2+ import java .util .Arrays ;
3+ import java .util .List ;
4+
5+ class Solution {
6+ public List <List <Integer >> threeSum (int [] nums ) {
7+ /*
8+ time complexity: O(n^2)
9+ space complexity: O(1)
10+ */
11+ Arrays .sort (nums );
12+ List <List <Integer >> result = new ArrayList <>();
13+
14+ for (int i = 0 ; i < nums .length - 2 ; i ++) {
15+ if (i > 0 && nums [i ] == nums [i - 1 ]) continue ;
16+
17+ int left = i + 1 , right = nums .length - 1 ;
18+
19+ while (left < right ) {
20+ int sum = nums [i ] + nums [left ] + nums [right ];
21+
22+ if (sum < 0 ) {
23+ left ++;
24+ } else if (sum > 0 ) {
25+ right --;
26+ } else {
27+ result .add (Arrays .asList (nums [i ], nums [left ], nums [right ]));
28+ while (left < right && nums [left ] == nums [left + 1 ]) left ++;
29+ while (left < right && nums [right ] == nums [right - 1 ]) right --;
30+ left ++; right --;
31+ }
32+ }
33+ }
34+ return result ;
35+ }
36+ }
Original file line number Diff line number Diff line change 1+ class Solution {
2+ public int climbStairs (int n ) {
3+
4+ if (n == 1 || n == 2 ) {
5+ return n ;
6+ }
7+
8+ int [] cases = new int [n + 1 ];
9+ cases [1 ] = 1 ;
10+ cases [2 ] = 2 ;
11+ for (int i = 3 ; i <= n ; i ++) {
12+ cases [i ] = cases [i - 1 ] + cases [i - 2 ];
13+ }
14+
15+ return cases [n ];
16+ }
17+ }
Original file line number Diff line number Diff line change 1+ /* [time-complexity]: O(n)
2+ [space-complexity]: O(1)
3+ */
4+ public class JEONGBEOMKO {
5+
6+ class Solution {
7+ public int [] productExceptSelf (int [] nums ) {
8+ int n = nums .length ;
9+ int [] result = new int [n ];
10+
11+ // 왼쪽 곱 계산
12+ result [0 ] = 1 ;
13+ for (int i = 1 ; i < n ; i ++) {
14+ result [i ] = result [i - 1 ] * nums [i - 1 ];
15+ }
16+
17+ // 오른쪽 곱과 동시에 결과 계산
18+ int rightProduct = 1 ;
19+ for (int i = n - 1 ; i >= 0 ; i --) {
20+ result [i ] = result [i ] * rightProduct ;
21+ rightProduct *= nums [i ];
22+ }
23+
24+ return result ;
25+ }
26+ }
27+ }
Original file line number Diff line number Diff line change 1+ import java .util .HashMap ;
2+ import java .util .Map ;
3+
4+ public class Solution {
5+ /*
6+ time complexity: O(n)
7+ space complexity: O(1)
8+ */
9+ public boolean isAnagram (String s , String t ) {
10+ if (s .length () != t .length ()) return false ;
11+
12+ Map <Character , Integer > sFrequency = new HashMap <>();
13+
14+ for (int i = 0 ; i < s .length (); i ++) {
15+ sFrequency .put (s .charAt (i ), sFrequency .getOrDefault (s .charAt (i ), 0 ) + 1 );
16+ }
17+
18+ for (int i = 0 ; i < t .length (); i ++) {
19+ if (sFrequency .getOrDefault (t .charAt (i ), 0 ) != 0 ) {
20+ sFrequency .put (t .charAt (i ), sFrequency .get (t .charAt (i )) - 1 );
21+ }
22+ }
23+
24+ for (int count : sFrequency .values ()) {
25+ if (count != 0 ) return false ;
26+ }
27+
28+ return true ;
29+ }
30+ }
Original file line number Diff line number Diff line change 1+ /**
2+ * Definition for a binary tree node.
3+ * public class TreeNode {
4+ * int val;
5+ * TreeNode left;
6+ * TreeNode right;
7+ * TreeNode() {}
8+ * TreeNode(int val) { this.val = val; }
9+ * TreeNode(int val, TreeNode left, TreeNode right) {
10+ * this.val = val;
11+ * this.left = left;
12+ * this.right = right;
13+ * }
14+ * }
15+ */
16+ /**
17+ * time complexity: O(n)
18+ * space complexity: O(h)
19+ */
20+ class Solution {
21+ public boolean isValidBST (TreeNode root ) {
22+ return isValidRange (root , Long .MIN_VALUE , Long .MAX_VALUE );
23+ }
24+
25+ private boolean isValidRange (TreeNode root , long min , long max ) {
26+ if (root == null ) return true ;
27+
28+ if (root .val <= min || root .val >= max ) return false ;
29+
30+ return isValidRange (root .left , min , root .val )
31+ && isValidRange (root .right , root .val , max );
32+ }
33+
34+ }
You can’t perform that action at this time.
0 commit comments