由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - leetcode的2sum
相关主题
Leetcode上Two sum只能过3个case, VS能过,大牛进来看看是怎么回事面试归来,上面经回馈各位战友
Leetcode Two Sum,我这个O(n)解法为啥不讨服务器的好呢A公司面挂了,发面经,攒RP
请问下leetcode的two sum题目求leetcode 4sum的O(n^2)解法
请教 permute vector of vectors 如何实现,谢谢大家知道这里计算机的大牛多,问个题目~
关于面试ABCMerge Interval那道题
hashtable.containskey 怎么做到 O(1)的 (转载)一道google面经难题
算法题leetcode似乎c++11支持不完全?
问个题leetcode上这个链表节点的定义是什么意思?ListNode(int x) : val(x), next(NULL) {}
相关话题的讨论汇总
话题: int话题: numrecords话题: index话题: itemrecord话题: numbers
进入JobHunting版参与讨论
1 (共1页)
c********p
发帖数: 1969
1
返回的是index,这个不能排序吧?排序顺序就乱了。。。
哪个解法最优?
r*******e
发帖数: 7583
2
hashtable吧

【在 c********p 的大作中提到】
: 返回的是index,这个不能排序吧?排序顺序就乱了。。。
: 哪个解法最优?

k*******t
发帖数: 144
3
可以用先用pair(value, index), 然后sort pair based on value, 这样也是可以的
,就是比较麻烦点
c********p
发帖数: 1969
4
嗯,我用的就是hashtable。

【在 r*******e 的大作中提到】
: hashtable吧
c********p
发帖数: 1969
5
这个有想过但不知道怎么实践。
这个pair,是什么操作,什么数据结构?是自己定义一个wrapper class么?

【在 k*******t 的大作中提到】
: 可以用先用pair(value, index), 然后sort pair based on value, 这样也是可以的
: ,就是比较麻烦点

k*******t
发帖数: 144
6
如果你用c/c++的话 就定义一个struct,里面有两个variable, 一个value, 一个index.
sort时用vector的自带的sort, 不过要自己定义一个comparator。
k*******t
发帖数: 144
7
不过最优解法还是用hashtable
r*******e
发帖数: 7583
8
c++用stl pair就好了..

index.

【在 k*******t 的大作中提到】
: 如果你用c/c++的话 就定义一个struct,里面有两个variable, 一个value, 一个index.
: sort时用vector的自带的sort, 不过要自己定义一个comparator。

s*******s
发帖数: 1031
9
我的代码:
struct itemRecord {
int index;
int val;
itemRecord(int i, int v): index(i), val(v) {}
};
bool itemRecordLess(itemRecord i1, itemRecord i2) {
return i1.val < i2.val;
}
class Solution {
public:
vector twoSum(vector &numbers, int target) {
vector result;
int n = numbers.size();

vector numRecords;
for(int i=0; i numRecords.push_back(itemRecord(i, numbers[i]));
sort(numRecords.begin(), numRecords.end(), itemRecordLess);

for(int i=0; i int num = target - numRecords[i].val;
int ind = binarySearch(numRecords, i+1, n-1, num);
if(ind > i) {
if(numRecords[i].index > numRecords[ind].
index) {
result.push_back(numRecords[ind].
index+1);
result.push_back(numRecords[i].index
+1);
} else {
result.push_back(numRecords[i].index
+1);
result.push_back(numRecords[ind].
index+1);
}
return result;
}
}
return result;
}
int binarySearch(vector &numbers, int i, int j, int
target) {
while(i <= j) {
int m = (i+j)/2;
if(target == numbers[m].val)
return m;
else if(target > numbers[m].val)
i = m + 1;
else
j = m - 1;
}
return -1;
}
};

【在 c********p 的大作中提到】
: 返回的是index,这个不能排序吧?排序顺序就乱了。。。
: 哪个解法最优?

c********p
发帖数: 1969
10
我用java,用什么?

【在 r*******e 的大作中提到】
: c++用stl pair就好了..
:
: index.

c********p
发帖数: 1969
11
其实这个题用最基本的,每个都试一下,就能通过大oj。
但我不甘心啊。。。

【在 s*******s 的大作中提到】
: 我的代码:
: struct itemRecord {
: int index;
: int val;
: itemRecord(int i, int v): index(i), val(v) {}
: };
: bool itemRecordLess(itemRecord i1, itemRecord i2) {
: return i1.val < i2.val;
: }
: class Solution {

c******e
发帖数: 26
12
我用的是c++ map
t***a
发帖数: 416
13
用个map吧,key是numbers的value, value是numbers的index
这是我前几天写的
class Solution {
public:
vector twoSum(vector &numbers, int target) {
unordered_map index;
for(int i = 0; i < numbers.size(); i++){
auto position = index.find(target - numbers[i]);
if(position != index.end()) { //hit!
vector result;
result.push_back(position->second + 1);
result.push_back(i + 1);
return result;
}
index[numbers[i]] = i; //build index
}
throw invalid_argument("result not found");
}
};

【在 c********p 的大作中提到】
: 返回的是index,这个不能排序吧?排序顺序就乱了。。。
: 哪个解法最优?

c********p
发帖数: 1969
14
好的我捧回去读读。。

【在 t***a 的大作中提到】
: 用个map吧,key是numbers的value, value是numbers的index
: 这是我前几天写的
: class Solution {
: public:
: vector twoSum(vector &numbers, int target) {
: unordered_map index;
: for(int i = 0; i < numbers.size(); i++){
: auto position = index.find(target - numbers[i]);
: if(position != index.end()) { //hit!
: vector result;

1 (共1页)
进入JobHunting版参与讨论
相关主题
leetcode上这个链表节点的定义是什么意思?ListNode(int x) : val(x), next(NULL) {}关于面试ABC
Leetcode里heap的题很少。谁有C++ heap的例题?hashtable.containskey 怎么做到 O(1)的 (转载)
leetcode 4sum算法题
leetcode longest consecutive sequence还是想不通!问个题
Leetcode上Two sum只能过3个case, VS能过,大牛进来看看是怎么回事面试归来,上面经回馈各位战友
Leetcode Two Sum,我这个O(n)解法为啥不讨服务器的好呢A公司面挂了,发面经,攒RP
请问下leetcode的two sum题目求leetcode 4sum的O(n^2)解法
请教 permute vector of vectors 如何实现,谢谢大家知道这里计算机的大牛多,问个题目~
相关话题的讨论汇总
话题: int话题: numrecords话题: index话题: itemrecord话题: numbers