mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-08 16:54:50 +08:00
Merge branch 'youngyangyang04:master' into master
This commit is contained in:
@ -185,7 +185,7 @@ func removeElement(nums []int, val int) int {
|
|||||||
```
|
```
|
||||||
|
|
||||||
JavaScript:
|
JavaScript:
|
||||||
```
|
```javascript
|
||||||
//时间复杂度O(n)
|
//时间复杂度O(n)
|
||||||
//空间复杂度O(1)
|
//空间复杂度O(1)
|
||||||
var removeElement = (nums, val) => {
|
var removeElement = (nums, val) => {
|
||||||
|
@ -159,26 +159,28 @@ func getSum(n int) int {
|
|||||||
javaScript:
|
javaScript:
|
||||||
|
|
||||||
```js
|
```js
|
||||||
function getN(n) {
|
var isHappy = function (n) {
|
||||||
if (n == 1 || n == 0) return n;
|
let m = new Map()
|
||||||
let res = 0;
|
|
||||||
|
const getSum = (num) => {
|
||||||
|
let sum = 0
|
||||||
while (n) {
|
while (n) {
|
||||||
res += (n % 10) * (n % 10);
|
sum += (n % 10) ** 2
|
||||||
n = parseInt(n / 10);
|
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) {
|
var isHappy = function(n) {
|
||||||
if (getN(n) == 1) return true;
|
if (getN(n) == 1) return true;
|
||||||
let a = getN(n), b = getN(getN(n));
|
let a = getN(n), b = getN(getN(n));
|
||||||
|
@ -278,7 +278,26 @@ const findLength = (A, B) => {
|
|||||||
return res;
|
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;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
-----------------------
|
-----------------------
|
||||||
|
@ -88,7 +88,7 @@ int main() {
|
|||||||
|
|
||||||
**所以可以看出在C++中二维数组在地址空间上是连续的**。
|
**所以可以看出在C++中二维数组在地址空间上是连续的**。
|
||||||
|
|
||||||
像Java是没有指针的,同时也不对程序员暴漏其元素的地址,寻址操作完全交给虚拟机。
|
像Java是没有指针的,同时也不对程序员暴露其元素的地址,寻址操作完全交给虚拟机。
|
||||||
|
|
||||||
所以看不到每个元素的地址情况,这里我以Java为例,也做一个实验。
|
所以看不到每个元素的地址情况,这里我以Java为例,也做一个实验。
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user