From 28e42c2eca6bd4dc99e8dcfb41f666fb919c2c54 Mon Sep 17 00:00:00 2001 From: mayandev Date: Mon, 1 Jun 2020 22:49:05 +0800 Subject: [PATCH 1/9] add 6.1 --- .../01.md" | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 "leetcode\345\210\267\351\242\230/note/6\346\234\210\345\210\267\351\242\230/01.md" diff --git "a/leetcode\345\210\267\351\242\230/note/6\346\234\210\345\210\267\351\242\230/01.md" "b/leetcode\345\210\267\351\242\230/note/6\346\234\210\345\210\267\351\242\230/01.md" new file mode 100644 index 0000000..d00636c --- /dev/null +++ "b/leetcode\345\210\267\351\242\230/note/6\346\234\210\345\210\267\351\242\230/01.md" @@ -0,0 +1,41 @@ +# No.1431 拥有最多糖果的孩子 + +难度:`easy` + +给你一个数组 candies 和一个整数 extraCandies ,其中 candies[i] 代表第 i 个孩子拥有的糖果数目。 + +对每一个孩子,检查是否存在一种方案,将额外的 extraCandies 个糖果分配给孩子们之后,此孩子有 最多 的糖果。注意,允许有多个孩子同时拥有 最多 的糖果数目。 + +## 示例 + +``` +输入:candies = [2,3,5,1,3], extraCandies = 3 +输出:[true,true,true,false,true] +解释: +孩子 1 有 2 个糖果,如果他得到所有额外的糖果(3个),那么他总共有 5 个糖果,他将成为拥有最多糖果的孩子。 +孩子 2 有 3 个糖果,如果他得到至少 2 个额外糖果,那么他将成为拥有最多糖果的孩子。 +孩子 3 有 5 个糖果,他已经是拥有最多糖果的孩子。 +孩子 4 有 1 个糖果,即使他得到所有额外的糖果,他也只有 4 个糖果,无法成为拥有糖果最多的孩子。 +孩子 5 有 3 个糖果,如果他得到至少 2 个额外糖果,那么他将成为拥有最多糖果的孩子。 +``` + +## 解题思路 + +这个题非常简单,首先找到目前所拥有最大糖果数,然后遍历一遍数组,将额外的糖果数目加上去,然后与最大值比较即可。 + +这样的时间复杂度可以达到 O(n) + +JavaScript 可以使用 ES6 语法,是的代码非常简洁代码如下: + +```javascript +var kidsWithCandies = function(candies, extraCandies) { + // 1、找到最大值 + let maxCandy = Math.max(...candies); + let ans = []; + // 2、循环,数组每个值加上 extraCandies 并比较 + for (let num of candies) { + ans.push((num + extraCandies) >= maxCandy); + } + return ans; +}; +``` \ No newline at end of file From 161a9ad4d28ca437a0f9e7652e8459f62a477455 Mon Sep 17 00:00:00 2001 From: mayandev Date: Tue, 2 Jun 2020 22:32:02 +0800 Subject: [PATCH 2/9] add 02 --- .../02.md" | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 "leetcode\345\210\267\351\242\230/note/6\346\234\210\345\210\267\351\242\230/02.md" diff --git "a/leetcode\345\210\267\351\242\230/note/6\346\234\210\345\210\267\351\242\230/02.md" "b/leetcode\345\210\267\351\242\230/note/6\346\234\210\345\210\267\351\242\230/02.md" new file mode 100644 index 0000000..d8a5ce7 --- /dev/null +++ "b/leetcode\345\210\267\351\242\230/note/6\346\234\210\345\210\267\351\242\230/02.md" @@ -0,0 +1,50 @@ +# 面试题 64. 求 1+2+…+n + +难度 `middle` + +求 `1+2+...+n` ,要求不能使用乘除法、for、while、if、else、switch、case 等关键字及条件判断语句(A?B:C)。 + +## 示例 + +``` +输入: n = 3 +输出: 6 +------- +输入: n = 9 +输出: 45 +``` + +## 解题思路 + +如果忽略题目限制。 + +高中学过等差数列的求和公式 S = (1+n)* n / 2; + +可以很快的写出代码: + +```javascript +var sum = function(n) { + return (1+n)*n/2; +} +``` + +题目也不让用循环,考虑使用递归,也是一行代码。 + +```javascript +var sumNums = function(n) { + return n == 0 ? 0 : n + sumNums(n-1); +}; +``` + +但是题目限制了不让使用三目运算符,可以考虑使用 「与」 `&&` 操作。「与」操作有个就近原则,例如 A && B,如果 A 为 false,那么整个表达式就位 false,如果 A 为 true,则再看 B 的真值。 + +因此,可以将上面的递归代码改写成下面这个样子: + +```javascript +var sumNums = function(n) { + n && (n += sumNums(n-1)); + return n; +} +``` + +完事,这题考察递归以及逻辑运算,以后遇到类似的限制题目,可以往这方面想。 \ No newline at end of file From 8651bdba6a416662f3bfb2516c5ac663d3743b2b Mon Sep 17 00:00:00 2001 From: mayandev Date: Wed, 3 Jun 2020 23:42:09 +0800 Subject: [PATCH 3/9] add 03 --- .../03.md" | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 "leetcode\345\210\267\351\242\230/note/6\346\234\210\345\210\267\351\242\230/03.md" diff --git "a/leetcode\345\210\267\351\242\230/note/6\346\234\210\345\210\267\351\242\230/03.md" "b/leetcode\345\210\267\351\242\230/note/6\346\234\210\345\210\267\351\242\230/03.md" new file mode 100644 index 0000000..bbc390c --- /dev/null +++ "b/leetcode\345\210\267\351\242\230/note/6\346\234\210\345\210\267\351\242\230/03.md" @@ -0,0 +1,50 @@ +# No.837 新 21 点 + +爱丽丝参与一个大致基于纸牌游戏 “21 点” 规则的游戏,描述如下: + +爱丽丝以 0 分开始,并在她的得分少于 K 分时抽取数字。 抽取时,她从 [1, W] 的范围中随机获得一个整数作为分数进行累计,其中 W 是整数。 每次抽取都是独立的,其结果具有相同的概率。 + +当爱丽丝获得不少于 K 分时,她就停止抽取数字。 爱丽丝的分数不超过 N 的概率是多少? + +## 示例 + +``` +输入:N = 10, K = 1, W = 10 +输出:1.00000 +说明:爱丽丝得到一张卡,然后停止。 +----- +输入:N = 6, K = 1, W = 10 +输出:0.60000 +说明:爱丽丝得到一张卡,然后停止。 +在 W = 10 的 6 种可能下,她的得分不超过 N = 6 分。 +----- +输入:N = 21, K = 17, W = 10 +输出:0.73278 +``` + +## 解题思路 + +动态规划,和爬楼梯一个思路 + +```javascript +var new21Game = function (N, K, W) { + let dp = new Array(N + 1).fill(0) + dp[0] = 1 + let windowSum = 0 + for (let i = 1; i < N + 1; i++) { + if (i - W - 1 >= 0) { // 甩掉的dp[i - W - 1]要存在呀 + windowSum -= dp[i - W - 1] // 甩掉上一次window左端 + } + if (i - 1 < K) { // 新纳入的dp[i - 1]要存在呀,分数i<=K,i-1 Date: Thu, 4 Jun 2020 23:10:05 +0800 Subject: [PATCH 4/9] add 04 --- .../04.md" | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 "leetcode\345\210\267\351\242\230/note/6\346\234\210\345\210\267\351\242\230/04.md" diff --git "a/leetcode\345\210\267\351\242\230/note/6\346\234\210\345\210\267\351\242\230/04.md" "b/leetcode\345\210\267\351\242\230/note/6\346\234\210\345\210\267\351\242\230/04.md" new file mode 100644 index 0000000..aeb1d1d --- /dev/null +++ "b/leetcode\345\210\267\351\242\230/note/6\346\234\210\345\210\267\351\242\230/04.md" @@ -0,0 +1,47 @@ +# No.238 除自身以外数组的乘积 + +给你一个长度为 n 的整数数组 nums,其中 n > 1,返回输出数组 output ,其中 output[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。 + +## 实例 + +```javascript +输入: [1,2,3,4] +输出: [24,12,8,6] +``` + +## 解题思路 + +分别左右乘积。 + +举个简单的例子: +``` +[1,2,3,4] +--- +左乘的数组:L = [1,2,3,12]; +有乘的数组:R = [24,12,4,1]; +将 L[i] * R[i] 记得到答案 +``` + +代码如下: + +```javascript +/** + * @param {number[]} nums + * @return {number[]} + */ +var productExceptSelf = function(nums) { + let L = [1]; + let R = [1]; + + // 别左右乘 + for (let i = 0, n = nums.length-1; i < n; i++) { + L.push(L[L.length-1]*nums[i]); + R.unshift(R[0]*nums[n-i]); + } + // 两边乘积 + for (let i = 0; i < L.length; i++) { + L[i] = L[i] * R[i]; + } + return L; +}; +``` \ No newline at end of file From 0653466d810680b6e887af1a5e54b1bf82485365 Mon Sep 17 00:00:00 2001 From: mayandev Date: Mon, 8 Jun 2020 23:20:38 +0800 Subject: [PATCH 5/9] add 05 --- .../05.md" | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 "leetcode\345\210\267\351\242\230/note/6\346\234\210\345\210\267\351\242\230/05.md" diff --git "a/leetcode\345\210\267\351\242\230/note/6\346\234\210\345\210\267\351\242\230/05.md" "b/leetcode\345\210\267\351\242\230/note/6\346\234\210\345\210\267\351\242\230/05.md" new file mode 100644 index 0000000..3255cad --- /dev/null +++ "b/leetcode\345\210\267\351\242\230/note/6\346\234\210\345\210\267\351\242\230/05.md" @@ -0,0 +1,46 @@ +# No.67 二进制求和 + +难度:`easy` + +给你两个二进制字符串,返回它们的和(用二进制表示)。 + +输入为 非空 字符串且只包含数字 1 和 0。 + +## 示例 + +``` +示例 1: + +输入: a = "11", b = "1" +输出: "100" +-------- +示例 2: + +输入: a = "1010", b = "1011" +输出: "10101" +``` + +### 解题思路 + +将两个字符串较短的用 00 补齐,使得两个字符串长度一致,然后从末尾进行遍历计算,得到最终结果。 + +```javascript +/** + * @param {string} a + * @param {string} b + * @return {string} + */ +var addBinary = function(a, b) { + let ans = ""; + let ca = 0; + for(let i = a.length - 1, j = b.length - 1;i >= 0 || j >= 0; i--, j--) { + let sum = ca; + sum += i >= 0 ? parseInt(a[i]) : 0; + sum += j >= 0 ? parseInt(b[j]) : 0; + ans += sum % 2; + ca = Math.floor(sum / 2); + } + ans += ca == 1 ? ca : ""; + return ans.split('').reverse().join(''); +}; +``` \ No newline at end of file From 5e320c3ff36e77f0a2487b286d3202c732547eec Mon Sep 17 00:00:00 2001 From: mayandev Date: Tue, 9 Jun 2020 23:20:06 +0800 Subject: [PATCH 6/9] add 06 --- .../06.MD" | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 "leetcode\345\210\267\351\242\230/note/6\346\234\210\345\210\267\351\242\230/06.MD" diff --git "a/leetcode\345\210\267\351\242\230/note/6\346\234\210\345\210\267\351\242\230/06.MD" "b/leetcode\345\210\267\351\242\230/note/6\346\234\210\345\210\267\351\242\230/06.MD" new file mode 100644 index 0000000..249ddd7 --- /dev/null +++ "b/leetcode\345\210\267\351\242\230/note/6\346\234\210\345\210\267\351\242\230/06.MD" @@ -0,0 +1,23 @@ +# 面试题 46. 把数字翻译成字符串 + +给定一个数字,我们按照如下规则把它翻译为字符串:0 翻译成 “a” ,1 翻译成 “b”,……,11 翻译成 “l”,……,25 翻译成 “z”。一个数字可能有多个翻译。请编程实现一个函数,用来计算一个数字有多少种不同的翻译方法。 + +难度:`middle` + +## 示例 + +``` +示例 1: + +输入: 12258 +输出: 5 +解释: 12258有5种不同的翻译,分别是"bccfi", "bwfi", "bczi", "mcfi"和"mzi" +``` + +### 解题思路 + +这道题和青蛙跳台阶差不多,只不过需要加上一个限制条件。 + +使用动态规划的思路. + +![](https://mayandev.oss-cn-hangzhou.aliyuncs.com/blog/WX20200609-231832@2x.png) \ No newline at end of file From 1091dfdd6c07eeb1aeb168e6f4e83c430718df27 Mon Sep 17 00:00:00 2001 From: mayandev Date: Wed, 10 Jun 2020 23:19:57 +0800 Subject: [PATCH 7/9] add 07 --- .../07.md" | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 "leetcode\345\210\267\351\242\230/note/6\346\234\210\345\210\267\351\242\230/07.md" diff --git "a/leetcode\345\210\267\351\242\230/note/6\346\234\210\345\210\267\351\242\230/07.md" "b/leetcode\345\210\267\351\242\230/note/6\346\234\210\345\210\267\351\242\230/07.md" new file mode 100644 index 0000000..9471b61 --- /dev/null +++ "b/leetcode\345\210\267\351\242\230/note/6\346\234\210\345\210\267\351\242\230/07.md" @@ -0,0 +1,44 @@ +# 50. Pow(x, n) +实现 pow(x, n) ,即计算 x 的 n 次幂函数。 + +难度: `middle` + +## 示例 + +``` +示例 1: + +输入: 2.00000, 10 +输出: 1024.00000 +示例 2: + +输入: 2.10000, 3 +输出: 9.26100 +``` + +## 解题思路 + +分治法,「快速幂算法」的本质是分治算法。举个例子,如果我们要计算x^64次幂 ,我们可以按照: + +x -> x^2 -> x^4 -> x^8 -> x^{16} -> x^{32} -> x^{64} + +分治的核心是递归,代码如下: + +```javascript +/** + * @param {number} x + * @param {number} n + * @return {number} + */ +var myPow = function(x, n) { + return n > 0 ? quickMul(x, n) : 1.0 / quickMul(x, -n); +}; + +var quickMul = function(x, N) { + if (N == 0) { + return 1.0 + } + let y = quickMul(x, Math.floor(N / 2)); + return N % 2 == 0 ? y * y : y * y * x; +} +``` \ No newline at end of file From b5a4c8c00c97acda5dbbfa93e75fb2cd0e972f40 Mon Sep 17 00:00:00 2001 From: mayandev Date: Thu, 11 Jun 2020 23:32:21 +0800 Subject: [PATCH 8/9] add 08 --- .../08.md" | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 "leetcode\345\210\267\351\242\230/note/6\346\234\210\345\210\267\351\242\230/08.md" diff --git "a/leetcode\345\210\267\351\242\230/note/6\346\234\210\345\210\267\351\242\230/08.md" "b/leetcode\345\210\267\351\242\230/note/6\346\234\210\345\210\267\351\242\230/08.md" new file mode 100644 index 0000000..3bd4f16 --- /dev/null +++ "b/leetcode\345\210\267\351\242\230/note/6\346\234\210\345\210\267\351\242\230/08.md" @@ -0,0 +1,66 @@ +# No.739 每日温度 +请根据每日 气温 列表,重新生成一个列表。对应位置的输出为:要想观测到更高的气温,至少需要等待的天数。如果气温在这之后都不会升高,请在该位置用 0 来代替。 + +难度:`middle` + + +## 示例 + +例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73],你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。 + +提示:气温 列表长度的范围是 [1, 30000]。每个气温的值的均为华氏度,都是在 [30, 100] 范围内的整数。 + +## 解题思路 + +暴力法很好解决,两次循环,两个指针,只要后指针大于前指针,记录即可。 + +代码如下: + +```javascript +/** + * @param {number[]} T + * @return {number[]} + */ +var dailyTemperatures = function(T) { + let n = T.length; + let ans = new Array(n).fill(0); + // 暴力法很好解决 + for (let i = 0, n = T.length; i < n; i++) { + for (let j = i+1; j < n; j++) { + if (T[i] < T[j]) { + ans[i] = j - i; + break; + } + } + } + return ans; +}; +``` + +### 优化 + +可以使用一个辅助栈进行优化,栈记录的是数组的标。从头遍历数组,入栈,如果当前待入栈的数据大于栈顶数据,移除栈顶元素,将下标之差记录到返回答案数组。 + +代码如下: + +```javascript +/** + * @param {number[]} T + * @return {number[]} + */ +var dailyTemperatures = function(T) { + let n = T.length; + let ans = new Array(n).fill(0); + let stack = []; + // 暴力法很好解决 + for (let i = 0, n = T.length; i < n; i++) { + let temperature = T[i]; + while (stack.length!=0 && temperature > T[stack[stack.length-1]]) { + let prevIndex = stack.pop(); + ans[prevIndex] = i - prevIndex; + } + stack.push(i); + } + return ans; +}; +``` \ No newline at end of file From dbbeff69c04b16436c6b9d94447e94c2d63a8b46 Mon Sep 17 00:00:00 2001 From: mayandev Date: Tue, 11 Aug 2020 22:45:32 +0800 Subject: [PATCH 9/9] =?UTF-8?q?add=20=E7=AE=97=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../algorithms/sort/quick-sort/quick-sort.js" | 17 ++++++++-- .../algorithms/sort/quick-sort/test.js" | 34 +++++-------------- .../data-structures/hash-table/Test.js" | 24 +++++++------ .../data-structures/heap/Heap.js" | 4 --- .../data-structures/trie/test.js" | 4 +++ 5 files changed, 42 insertions(+), 41 deletions(-) create mode 100644 "\347\256\227\346\263\225\344\270\216\346\225\260\346\215\256\347\273\223\346\236\204\345\255\246\344\271\240/data-structures/trie/test.js" diff --git "a/\347\256\227\346\263\225\344\270\216\346\225\260\346\215\256\347\273\223\346\236\204\345\255\246\344\271\240/algorithms/sort/quick-sort/quick-sort.js" "b/\347\256\227\346\263\225\344\270\216\346\225\260\346\215\256\347\273\223\346\236\204\345\255\246\344\271\240/algorithms/sort/quick-sort/quick-sort.js" index c17fd7c..da73029 100644 --- "a/\347\256\227\346\263\225\344\270\216\346\225\260\346\215\256\347\273\223\346\236\204\345\255\246\344\271\240/algorithms/sort/quick-sort/quick-sort.js" +++ "b/\347\256\227\346\263\225\344\270\216\346\225\260\346\215\256\347\273\223\346\236\204\345\255\246\344\271\240/algorithms/sort/quick-sort/quick-sort.js" @@ -8,7 +8,6 @@ function quickSort(arr, low, high) { function adjustArr(arr, low, high) { let pivot = arr[low]; - while (low < high) { while (arr[high] > pivot) high--; @@ -24,4 +23,18 @@ function adjustArr(arr, low, high) { let arr = [72,6,57,88,60,42,83,73,48,85]; quickSort(arr, 0, arr.length-1); -console.log(arr); \ No newline at end of file +console.log(arr); + +function quickSort(arr) { + const pivot = arr[0]; + const left = []; + const right = []; + + if (arr.length < 2) { return arr; } + + for (let i = 1, len = arr.length; i < len; i++) { + arr[i] < pivot ? left.push(arr[i]) : right.push(arr[i]); + } + + return quickSort(left).concat([pivot], quickSort(right)); +} \ No newline at end of file diff --git "a/\347\256\227\346\263\225\344\270\216\346\225\260\346\215\256\347\273\223\346\236\204\345\255\246\344\271\240/algorithms/sort/quick-sort/test.js" "b/\347\256\227\346\263\225\344\270\216\346\225\260\346\215\256\347\273\223\346\236\204\345\255\246\344\271\240/algorithms/sort/quick-sort/test.js" index a6330ed..4889380 100644 --- "a/\347\256\227\346\263\225\344\270\216\346\225\260\346\215\256\347\273\223\346\236\204\345\255\246\344\271\240/algorithms/sort/quick-sort/test.js" +++ "b/\347\256\227\346\263\225\344\270\216\346\225\260\346\215\256\347\273\223\346\236\204\345\255\246\344\271\240/algorithms/sort/quick-sort/test.js" @@ -1,29 +1,13 @@ -function quickSort(arr, low, high) { - if (low < high) { - // 调整数组 - let i = adjustArr(arr, low, high); - // 分治 - quickSort(arr, low, i-1); - quickSort(arr, i+1, high); - } -} - -function adjustArr(arr, low, high) { - let pivot = arr[low]; +var myPow = function(x, n) { + return n > 0 ? quickMul(x, n) : 1.0 / quickMul(x, -n); +}; - while (low < high) { - while (low < high && arr[high] > pivot) - high--; - arr[low] = arr[high]; - while (low < high && arr[low] < pivot) - low++; - arr[high] = arr[low]; +var quickMul = function(x, N) { + if (N == 0) { + return 1.0 } - - arr[low] = pivot; - return low; + let y = quickMul(x, Math.floor()); + return N % 2 == 0 ? y * y : y * y * x; } -let arr = [72,6,57,88,60,42,83,73,48,85]; -quickSort(arr, 0, arr.length-1); -console.log(arr); \ No newline at end of file +console.log(myPow(2, 10)); diff --git "a/\347\256\227\346\263\225\344\270\216\346\225\260\346\215\256\347\273\223\346\236\204\345\255\246\344\271\240/data-structures/hash-table/Test.js" "b/\347\256\227\346\263\225\344\270\216\346\225\260\346\215\256\347\273\223\346\236\204\345\255\246\344\271\240/data-structures/hash-table/Test.js" index 23d164a..e5b9307 100644 --- "a/\347\256\227\346\263\225\344\270\216\346\225\260\346\215\256\347\273\223\346\236\204\345\255\246\344\271\240/data-structures/hash-table/Test.js" +++ "b/\347\256\227\346\263\225\344\270\216\346\225\260\346\215\256\347\273\223\346\236\204\345\255\246\344\271\240/data-structures/hash-table/Test.js" @@ -1,14 +1,18 @@ -import HashTable from './HashTable'; +// let k1 = [1,2,3]; +// let k2 = [3,4,5]; +// let k3 = [3,4,5]; +// let arr = [[k1, 'foo'], [k2, 'bar']]; -let hashTable = new HashTable(); +// let keys = arr.map(item => item[0]); -hashTable.set('a', 'sky-old'); -hashTable.set('a', 'sky'); -hashTable.set('b', 'sea'); -hashTable.set('c', 'earth'); -hashTable.set('d', 'ocean'); +// console.log(); -hashTable.buckets[1].toString(); -console.log(hashTable.getKeys()) -console.log(hashTable.has); +// console.log(keys.indexOf(k3)); + +let arr = [1,2,3]; +let obj = { + arr: arr +} + +console.log(obj.arr); diff --git "a/\347\256\227\346\263\225\344\270\216\346\225\260\346\215\256\347\273\223\346\236\204\345\255\246\344\271\240/data-structures/heap/Heap.js" "b/\347\256\227\346\263\225\344\270\216\346\225\260\346\215\256\347\273\223\346\236\204\345\255\246\344\271\240/data-structures/heap/Heap.js" index 9637580..8501912 100644 --- "a/\347\256\227\346\263\225\344\270\216\346\225\260\346\215\256\347\273\223\346\236\204\345\255\246\344\271\240/data-structures/heap/Heap.js" +++ "b/\347\256\227\346\263\225\344\270\216\346\225\260\346\215\256\347\273\223\346\236\204\345\255\246\344\271\240/data-structures/heap/Heap.js" @@ -1,16 +1,12 @@ export default class Heap { constructor(params) { - // 不能直接通过 new 来创建堆 if (new.target === Heap) { throw new TypeError('Cannot construct Heap instance directly'); } - this.heapContainer = []; - } - /** * 获取左孩子的下标 */ diff --git "a/\347\256\227\346\263\225\344\270\216\346\225\260\346\215\256\347\273\223\346\236\204\345\255\246\344\271\240/data-structures/trie/test.js" "b/\347\256\227\346\263\225\344\270\216\346\225\260\346\215\256\347\273\223\346\236\204\345\255\246\344\271\240/data-structures/trie/test.js" new file mode 100644 index 0000000..db23da7 --- /dev/null +++ "b/\347\256\227\346\263\225\344\270\216\346\225\260\346\215\256\347\273\223\346\236\204\345\255\246\344\271\240/data-structures/trie/test.js" @@ -0,0 +1,4 @@ +const p = Promise.resolve(1); + +p.then(console.log) +p.then(console.log) \ No newline at end of file