Skip to content

Commit a10515c

Browse files
committed
update
1 parent 462bce8 commit a10515c

File tree

5 files changed

+35
-114
lines changed

5 files changed

+35
-114
lines changed

.elp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,8 @@
2222
[680]
2323
},
2424
20221104={
25-
[]
25+
[524]
26+
},
27+
20221107={
28+
[167]
2629
}
Lines changed: 6 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,52 +1,13 @@
1-
#include <cstdio>
2-
#include <string>
3-
#include <vector>
4-
using namespace std;
5-
61
class Solution {
72
public:
83
vector<int> twoSum(vector<int>& numbers, int target) {
94
int l = 0, r = numbers.size() - 1;
105
while (l < r) {
11-
int sum = numbers[l] + numbers[r];
12-
if (sum < target)
13-
++l;
14-
else if (sum > target)
15-
--r;
16-
else
17-
return {l+1, r+1};
6+
int s = numbers[l] + numbers[r];
7+
if (s < target) ++l;
8+
else if (s > target) --r;
9+
else return {l+1, r+1};
1810
}
19-
return {-1, -1};
11+
return {};
2012
}
21-
};
22-
23-
24-
void test(string test_name,
25-
vector<int>& numbers,
26-
int target,
27-
const vector<int>& expected) {
28-
vector<int> res = Solution().twoSum(numbers, target);
29-
if (res == expected)
30-
printf("%s succeed\n", test_name.c_str());
31-
else
32-
printf("%s fail\n", test_name.c_str());
33-
}
34-
35-
int main() {
36-
vector<int> numbers1{2,7,11,15};
37-
int target1 = 9;
38-
vector<int> expected1{1,2};
39-
test("test1", numbers1, target1, expected1);
40-
41-
vector<int> numbers2{2,3,4};
42-
int target2 = 6;
43-
vector<int> expected2{1,3};
44-
test("test2", numbers2, target2, expected2);
45-
46-
vector<int> numbers3{-1, 0};
47-
int target3 = -1;
48-
vector<int> expected3{1,2};
49-
test("test3", numbers3, target3, expected3);
50-
51-
return 0;
52-
}
13+
};
Lines changed: 5 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,14 @@
1-
import { ArrayUtils } from './util_js/array.js';
2-
31
/**
42
* @param {number[]} numbers
53
* @param {number} target
64
* @return {number[]}
75
*/
8-
var twoSum = function(numbers, target) {
9-
let l = 0, r = numbers.length - 1;
6+
var twoSum = function(numbers, target) {
7+
let l = 0, r = numbers.length-1;
108
while (l < r) {
119
let s = numbers[l] + numbers[r];
12-
if (s < target)
13-
++l;
14-
else if (s > target)
15-
--r;
16-
else
17-
return [l+1, r+1];
10+
if (s < target) ++l;
11+
else if (s > target) --r;
12+
else return [l+1, r+1];
1813
}
19-
return [];
2014
};
21-
22-
function test(test_name, numbers, target, expected) {
23-
let res = twoSum(numbers, target);
24-
if (ArrayUtils.isEqualArray(res, expected))
25-
console.log(test_name + ' succeed');
26-
else
27-
console.log(test_name + ' fail');
28-
}
29-
30-
let numbers1 = [2,7,11,15];
31-
let target1 = 9;
32-
let expected1 = [1,2];
33-
test('test1', numbers1, target1, expected1);
34-
35-
let numbers2 = [2,3,4];
36-
let target2 = 6;
37-
let expected2 = [1,3];
38-
test('test2', numbers2, target2, expected2);
39-
40-
let numbers3 = [-1, 0];
41-
let target3 = -1;
42-
let expected3 = [1,2];
43-
test('test3', numbers3, target3, expected3);

t.cpp

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,13 @@
11
class Solution {
2-
bool isSubsequence(string word, string s) {
3-
int pw = 0, size = s.size();
4-
for (int ps = 0; ps < size; ++ps)
5-
if (word[pw] == s[ps]) ++pw;
6-
return pw == word.size();
7-
}
82
public:
9-
string findLongestWord(string s, vector<string>& dictionary) {
10-
string res = "";
11-
for (const string& word : dictionary) {
12-
if (!isSubsequence(word, s))
13-
continue;
14-
if (res.size() < word.size() ||
15-
res.size() == word.size() && word < res)
16-
res = word;
3+
vector<int> twoSum(vector<int>& numbers, int target) {
4+
int l = 0, r = numbers.size() - 1;
5+
while (l < r) {
6+
int s = numbers[l] + numbers[r];
7+
if (s < target) ++l;
8+
else if (s > target) --r;
9+
else return {l+1, r+1};
1710
}
18-
return res;
11+
return {};
1912
}
20-
};
13+
};

t.js

Lines changed: 11 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,15 @@
11
/**
2-
* @param {string} s
3-
* @param {string[]} dictionary
4-
* @return {string}
2+
* @param {number[]} numbers
3+
* @param {number} target
4+
* @return {number[]}
55
*/
6-
var findLongestWord = function(s, dictionary) {
7-
function isSubsequence(word, s) {
8-
let pw = 0;
9-
for (let ps = 0; ps < s.length; ++ps)
10-
if (word[pw] === s[ps]) ++pw;
11-
return pw === word.length;
6+
var twoSum = function(numbers, target) {
7+
let l = 0, r = numbers.length-1;
8+
while (l < r) {
9+
let s = numbers[l] + numbers[r];
10+
if (s < target) ++l;
11+
else if (s > target) --r;
12+
else return [l+1, r+1];
1213
}
13-
14-
let res = '';
15-
for (let word of dictionary) {
16-
if (!isSubsequence(word, s))
17-
continue;
18-
if (res.length < word.length || (res.length === word.length && word < res))
19-
res = word;
20-
}
21-
return res;
2214
};
15+

0 commit comments

Comments
 (0)