File tree Expand file tree Collapse file tree 3 files changed +65
-0
lines changed Expand file tree Collapse file tree 3 files changed +65
-0
lines changed Original file line number Diff line number Diff line change
1
+ import java .util .Arrays ;
2
+ import java .util .HashSet ;
3
+ import java .util .List ;
4
+ import java .util .Set ;
5
+
6
+ class Solution {
7
+ public List <List <Integer >> threeSum (int [] nums ) {
8
+ Set <List <Integer >> set = new HashSet <>();
9
+ Arrays .sort (nums );
10
+ for (int i = 0 ; i < nums .length -2 ; i ++) {
11
+ int start = i + 1 ;
12
+ int end = nums .length - 1 ;
13
+ while (start < end ) {
14
+ int sum = nums [i ] + nums [start ] + nums [end ];
15
+ if (sum < 0 ) {
16
+ start ++;
17
+ } else if (sum > 0 ) {
18
+ end --;
19
+ }else {
20
+ set .add (Arrays .asList (nums [i ], nums [start ], nums [end ]));
21
+ start ++;
22
+ end --;
23
+ }
24
+ }
25
+ }
26
+ return set .stream ().toList ();
27
+ }
28
+ }
Original file line number Diff line number Diff line change
1
+ /*
2
+ *
3
+ * 시간 복잡도:
4
+ * 바텀업 형식으로 배열을 훑으며 올라가기 때문에 O(N)
5
+ * 공간 복잡도:
6
+ * 자연수 마다 해당하는 방법의 갯수를 저장하기 때문에 O(N)
7
+ *
8
+ * */
9
+ class Solution {
10
+ public int climbStairs (int n ) {
11
+ int [] dp = new int [n + 1 ];
12
+ dp [1 ] = 1 ;
13
+ dp [2 ] = 2 ;
14
+ for (int i =3 ;i <=n ;i ++){
15
+ dp [i ] = dp [i - 2 ] + dp [i - 1 ];
16
+ }
17
+ return dp [n ];
18
+ }
19
+ }
Original file line number Diff line number Diff line change
1
+ import java .util .Arrays ;
2
+ /*
3
+ * 시간 복잡도:
4
+ * toCharArray는 O(1)의 복잡도를 갖고 ArraySor의 경우 평균O(nlogn), 최악O(n^2)를 갖음(코테시 몇으로 계산하고 진행해야 할 지는 잘 모르겠네요..)
5
+ * 공간 복잡도:
6
+ * s와t를 사용해서 그대로 배열로 만들기 때문에 O(n)
7
+ *
8
+ *
9
+ * */
10
+ class Solution {
11
+ public static boolean isAnagram (String s , String t ) {
12
+ char [] s1 = s .toCharArray ();
13
+ char [] s2 = t .toCharArray ();
14
+ Arrays .sort (s1 );
15
+ Arrays .sort (s2 );
16
+ return Arrays .equals (s1 , s2 );
17
+ }
18
+ }
You can’t perform that action at this time.
0 commit comments