Skip to content

Commit cc46ffd

Browse files
committed
11.5 coding
1 parent b7002eb commit cc46ffd

File tree

2 files changed

+39
-15
lines changed

2 files changed

+39
-15
lines changed

1. 两数之和.js

+10-15
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,16 @@
11
/**
2-
*
3-
* @param numbers int整型一维数组
4-
* @param target int整型
5-
* @return int整型一维数组
6-
*/
7-
function twoSum( numbers , target ) {
8-
// write code here
2+
* @param {number[]} nums
3+
* @param {number} target
4+
* @return {number[]}
5+
*/
6+
var twoSum = function(nums, target) {
97
let map = new Map();
10-
for(let i = 0; i <= numbers.length - 1; i++) {
11-
if(map.has(target - numbers[i])) {
12-
return [map.get(target - numbers[i]) + 1, i + 1];
8+
for (let i = 0; i < nums.length; i++) {
9+
let matchNum = target - nums[i];
10+
if (map.has(matchNum)) {
11+
return [map.get(matchNum), i]
1312
} else {
14-
map.set(numbers[i], i);
13+
map.set(nums[i], i)
1514
}
1615
}
17-
return [];
18-
}
19-
module.exports = {
20-
twoSum : twoSum
2116
};

128. 最长连续序列.js

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/**
2+
* @param {number[]} nums
3+
* @return {number}
4+
*/
5+
var longestConsecutive = function (nums) {
6+
// 去重存储原数组
7+
let numSet = new Set(nums);
8+
let maxLen = 0;
9+
for (let num of numSet) {
10+
if (!numSet.has(num - 1)) {
11+
let curNum = num;
12+
let curLen = 1;
13+
14+
// 只有是连续序列第一个数
15+
while (numSet.has(curNum + 1)) {
16+
curNum++;
17+
curLen++;
18+
}
19+
20+
maxLen = Math.max(maxLen, curLen);
21+
}
22+
}
23+
24+
return maxLen;
25+
};
26+
27+
console.log(longestConsecutive([100, 4, 200, 1, 3, 2])); // 4
28+
// console.log(longestConsecutive([0,3,7,2,5,8,4,6,0,1])); // 9
29+

0 commit comments

Comments
 (0)