File tree Expand file tree Collapse file tree 3 files changed +73
-6
lines changed
Expand file tree Collapse file tree 3 files changed +73
-6
lines changed Original file line number Diff line number Diff line change 11/**
22 * @param {number[] } nums
33 * @return {boolean }
4+ *
5+ * ์๊ฐ๋ณต์ก๋ ๊ณ์ฐ
6+ * ์
๋ ฅ ํฌ๊ธฐ(n)๊ฐ ์ปค์ง ๋ ์ฐ์ฐ ํ์๊ฐ n์ ๋น๋กํด์ ์ฆ๊ฐ
7+ * => O(n)
8+ *
9+ * ๊ณต๊ฐ๋ณต์ก๋ ๊ณ์ฐ
10+ * indices๊ฐ nums์ ๋น๋กํด์ ํ ๋น
11+ * ์์ i ํ ๋น
12+ * => O(n)
413 */
5-
6- // for loof: O(n)
714var containsDuplicate = function ( nums ) {
815 let indices = { } ;
916 nums . forEach ( ( num , index ) => {
@@ -17,7 +24,19 @@ var containsDuplicate = function (nums) {
1724 return false ;
1825} ;
1926
20- // size ์์ฑ: O(1)
27+ /**
28+ * @param {number[] } nums
29+ * @return {boolean }
30+ *
31+ * ์๊ฐ๋ณต์ก๋ ๊ณ์ฐ
32+ * Set์ size์์ฑ์ ์
๋ ฅ ํฌ๊ธฐ์ ๊ด๊ณ์์ด ์ผ์ ํ ์๊ฐ์ด ๊ฑธ๋ฆผ
33+ * => O(1)
34+ *
35+ * ๊ณต๊ฐ๋ณต์ก๋ ๊ณ์ฐ
36+ * indices๊ฐ nums์ ๋น๋กํด์ ํ ๋น
37+ * ์์ i ํ ๋น
38+ * => O(n)
39+ */
2140var containsDuplicate = function ( nums ) {
2241 const indices = new Set ( nums ) ;
2342
Original file line number Diff line number Diff line change 1+ /**
2+ * @param {number[] } nums
3+ * @param {number } k
4+ * @return {number[] }
5+ *
6+ * ์๊ฐ๋ณต์ก๋ ๊ณ์ฐ
7+ * for loop๊ฐ O(n)
8+ * reduce๊ฐ O(n)
9+ * sort๊ฐ O(n log n)
10+ * => O(n log n)
11+ */
12+ var topKFrequent = function ( nums , k ) {
13+ let result = [ ] ;
14+ for ( let i = 0 ; i < nums . length ; i ++ ) {
15+ if ( result . find ( ( el ) => el . key == nums [ i ] ) ) continue ;
16+ const count = nums . reduce ( ( cnt , el ) => cnt + ( nums [ i ] === el ) , 0 ) ;
17+ result . push ( { key : nums [ i ] , value : count } ) ;
18+ }
19+
20+ return result
21+ . sort ( ( a , b ) => b . value - a . value )
22+ . slice ( 0 , k )
23+ . map ( ( el ) => el . key ) ;
24+ } ;
25+
26+ /**
27+ * Follow up: Your algorithm's time complexity must be better than O(n log n), where n is the array's size.
28+ */
Original file line number Diff line number Diff line change 22 * @param {number[] } nums
33 * @param {number } target
44 * @return {number[] }
5+ *
6+ * ์๊ฐ๋ณต์ก๋ ๊ณ์ฐ
7+ * ์
๋ ฅ ํฌ๊ธฐ(n)๊ฐ ์ปค์ง ๋ ์ฐ์ฐ ํ์๊ฐ n^2์ ๋น๋กํด์ ์ฆ๊ฐ
8+ * => O(n^2)
9+ *
10+ * ๊ณต๊ฐ๋ณต์ก๋ ๊ณ์ฐ
11+ * ์์ i ํ ๋น
12+ * ์์ j ํ ๋น
13+ * => o(1)
514 */
6-
7- // 2์ค for๋ฌธ: O(n^2)
815var twoSum = function ( nums , target ) {
916 for ( let i = 0 ; i < nums . length ; i ++ ) {
1017 for ( let j = 0 ; j < nums . length ; j ++ ) {
@@ -14,7 +21,20 @@ var twoSum = function (nums, target) {
1421 }
1522} ;
1623
17- // for loof: O(n)
24+ /**
25+ * @param {number[] } nums
26+ * @param {number } target
27+ * @return {number[] }
28+ *
29+ * ์๊ฐ๋ณต์ก๋ ๊ณ์ฐ
30+ * ์
๋ ฅ ํฌ๊ธฐ(n)๊ฐ ์ปค์ง ๋ ์ฐ์ฐ ํ์๊ฐ n์ ๋น๋กํด์ ์ฆ๊ฐ
31+ * => O(n)
32+ *
33+ * ๊ณต๊ฐ๋ณต์ก๋ ๊ณ์ฐ
34+ * result๊ฐ nums์ ๋น๋กํด์ ํ ๋น
35+ * ์์ i, findNum ํ ๋น
36+ * => O(n)
37+ */
1838var twoSum = function ( nums , target ) {
1939 let result = { } ;
2040
You canโt perform that action at this time.
0 commit comments