x*g
2 楼
俺们附近的cvs店里所有刮胡刀都是锁着的,要买的话需要叫小二开锁。
室友周日去的时候,所有的fusion proglide都卖完了。室友只好去问小二有没有新货
,小二就跑到仓库里拿了一个package。
我们昨天也去了,也是问小二有没有package,小二又从仓库里拿了一个package。
柜台上没有package的,需要向小二要。想必cvs还是有货,只是没有摆上柜台而已。
室友周日去的时候,所有的fusion proglide都卖完了。室友只好去问小二有没有新货
,小二就跑到仓库里拿了一个package。
我们昨天也去了,也是问小二有没有package,小二又从仓库里拿了一个package。
柜台上没有package的,需要向小二要。想必cvs还是有货,只是没有摆上柜台而已。
k*t
5 楼
可以用先用pair(value, index), 然后sort pair based on value, 这样也是可以的
,就是比较麻烦点
,就是比较麻烦点
x*0
6 楼
pai..从没见过的说
l*u
8 楼
没看见过
k*t
11 楼
如果你用c/c++的话 就定义一个struct,里面有两个variable, 一个value, 一个index.
sort时用vector的自带的sort, 不过要自己定义一个comparator。
sort时用vector的自带的sort, 不过要自己定义一个comparator。
r*6
12 楼
pai baozi
k*t
13 楼
不过最优解法还是用hashtable
s*s
17 楼
我的代码:
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,这个不能排序吧?排序顺序就乱了。。。
: 哪个解法最优?
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
vector
int n = numbers.size();
vector
for(int i=0; i
sort(numRecords.begin(), numRecords.end(), itemRecordLess);
for(int i=0; i
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
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,这个不能排序吧?排序顺序就乱了。。。
: 哪个解法最优?
i*4
22 楼
cong
c*e
23 楼
我用的是c++ map
l*o
24 楼
这周还能买吗,在广告商没看到哎,能买几个
买了20个胖子晚到乐
买了20个胖子晚到乐
t*a
25 楼
用个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,这个不能排序吧?排序顺序就乱了。。。
: 哪个解法最优?
这是我前几天写的
class Solution {
public:
vector
unordered_map
for(int i = 0; i < numbers.size(); i++){
auto position = index.find(target - numbers[i]);
if(position != index.end()) { //hit!
vector
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
27 楼
好的我捧回去读读。。
【在 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;
【在 t***a 的大作中提到】
: 用个map吧,key是numbers的value, value是numbers的index
: 这是我前几天写的
: class Solution {
: public:
: vector
: unordered_map
: for(int i = 0; i < numbers.size(); i++){
: auto position = index.find(target - numbers[i]);
: if(position != index.end()) { //hit!
: vector
相关阅读
手机丢了,哪儿有deal?2瓶免费bathbodyworks洗手液full sizehome depot online order取消,gift card钱怎么退?收到牛奶bogo的couponstaples online 30 off 60. what to buy ?(求建议)想买洗衣机和烘干机,怎么买?哪里买划算?求推荐最便宜的AT&T 家的2人plan最近还有LED灯泡deal么?或者有想转让上次staples, HD灯泡的么?求britax carrier upc 就差这一个了有人用T-fal的空气炸锅吗想买个coach包,有sale吗?请问Cartier (卡地亚)的表在哪里有可能打折吗Walgreens的可乐[转让]/[交换] HUGGIES coupon求建议Free FROZEN Blue Ray or DVD @ Walmart via TopCashBack最近有enfamil打印胖么?Britax 2014 B-Agile and B-Safe Travel System 没赶上deal,哪里买价格值啊?Free 8x10 Photo@WalgreensT J Maxx 有省钱的方法吗?