From 7b584ed5962c119dc9b0c85fbe83cd021978ada6 Mon Sep 17 00:00:00 2001 From: Jerry-306 <82520819+Jerry-306@users.noreply.github.com> Date: Fri, 17 Sep 2021 13:39:36 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=200027=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E5=85=83=E7=B4=A0=20javascript=20=E7=89=88=E6=9C=AC=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F=E9=94=99=E8=AF=AF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/0027.移除元素.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/0027.移除元素.md b/problems/0027.移除元素.md index 78f9afb7..4afd347a 100644 --- a/problems/0027.移除元素.md +++ b/problems/0027.移除元素.md @@ -185,7 +185,7 @@ func removeElement(nums []int, val int) int { ``` JavaScript: -``` +```javascript //时间复杂度O(n) //空间复杂度O(1) var removeElement = (nums, val) => { From c911b6b65de08531115e19c465ae8ea519fe44af Mon Sep 17 00:00:00 2001 From: SambacFeng <56753082+SambacFeng@users.noreply.github.com> Date: Fri, 17 Sep 2021 16:40:17 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E9=94=99=E5=88=AB?= =?UTF-8?q?=E5=AD=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/数组理论基础.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/problems/数组理论基础.md b/problems/数组理论基础.md index 6d7b9f9a..146cd2de 100644 --- a/problems/数组理论基础.md +++ b/problems/数组理论基础.md @@ -88,7 +88,7 @@ int main() { **所以可以看出在C++中二维数组在地址空间上是连续的**。 -像Java是没有指针的,同时也不对程序员暴漏其元素的地址,寻址操作完全交给虚拟机。 +像Java是没有指针的,同时也不对程序员暴露其元素的地址,寻址操作完全交给虚拟机。 所以看不到每个元素的地址情况,这里我以Java为例,也做一个实验。 From 2bd9b0280b9618236d37b74c3b7dd71884ba15b7 Mon Sep 17 00:00:00 2001 From: Jerry-306 <82520819+Jerry-306@users.noreply.github.com> Date: Fri, 17 Sep 2021 20:01:44 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=200718=20=E6=9C=80?= =?UTF-8?q?=E9=95=BF=E9=87=8D=E5=A4=8D=E6=95=B0=E7=BB=84=20JavaScript=20?= =?UTF-8?q?=E6=BB=9A=E5=8A=A8=E6=95=B0=E7=BB=84=E8=A7=A3=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/0718.最长重复子数组.md | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/problems/0718.最长重复子数组.md b/problems/0718.最长重复子数组.md index 9e3da663..712b5eeb 100644 --- a/problems/0718.最长重复子数组.md +++ b/problems/0718.最长重复子数组.md @@ -278,7 +278,26 @@ const findLength = (A, B) => { return res; }; ``` - +> 滚动数组 +```javascript +const findLength = (nums1, nums2) => { + let len1 = nums1.length, len2 = nums2.length; + // dp[i][j]: 以nums1[i-1]、nums2[j-1]为结尾的最长公共子数组的长度 + let dp = new Array(len2+1).fill(0); + let res = 0; + for (let i = 1; i <= len1; i++) { + for (let j = len2; j > 0; j--) { + if (nums1[i-1] === nums2[j-1]) { + dp[j] = dp[j-1] + 1; + } else { + dp[j] = 0; + } + res = Math.max(res, dp[j]); + } + } + return res; +} +``` ----------------------- From 3e069c66165d41e2eab3f3127de516dc4ef5cbc2 Mon Sep 17 00:00:00 2001 From: SambacFeng <56753082+SambacFeng@users.noreply.github.com> Date: Fri, 17 Sep 2021 23:55:11 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E6=9B=B4=E6=96=B0=200202.=E5=BF=AB?= =?UTF-8?q?=E4=B9=90=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- problems/0202.快乐数.md | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/problems/0202.快乐数.md b/problems/0202.快乐数.md index 710c824d..02db507a 100644 --- a/problems/0202.快乐数.md +++ b/problems/0202.快乐数.md @@ -159,26 +159,28 @@ func getSum(n int) int { javaScript: ```js -function getN(n) { - if (n == 1 || n == 0) return n; - let res = 0; - while (n) { - res += (n % 10) * (n % 10); - n = parseInt(n / 10); +var isHappy = function (n) { + let m = new Map() + + const getSum = (num) => { + let sum = 0 + while (n) { + sum += (n % 10) ** 2 + n = Math.floor(n / 10) + } + return sum + } + + while (true) { + // n出现过,证明已陷入无限循环 + if (m.has(n)) return false + if (n === 1) return true + m.set(n, 1) + n = getSum(n) } - return res; } -var isHappy = function(n) { - const sumSet = new Set(); - while (n != 1 && !sumSet.has(n)) { - sumSet.add(n); - n = getN(n); - } - return n == 1; -}; - -// 使用环形链表的思想 说明出现闭环 退出循环 +// 方法二:使用环形链表的思想 说明出现闭环 退出循环 var isHappy = function(n) { if (getN(n) == 1) return true; let a = getN(n), b = getN(getN(n));