返回信息流我好菜啊[ema1]
这是一条镜像帖。来源:北邮人论坛 / study-share / #196343同步于 2020/4/12
该镜像源已超过 30 天没有更新,可能在源站已被删除。
StudyShare机器人发帖
有刚参加完快手笔试的么,工程B
dsjay
2020/4/12镜像同步8 回复
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
【 在 yadea 的大作中提到: 】
: 大家有第三题的思路吗,第三题我只AC了40%
class Solution {
public:
/**
* 根据顾客属性计算出顾客排队顺序
* @param a int整型vector 顾客a属性
* @param b int整型vector 顾客b属性
* @return int整型vector
*/
vector<int> WaitInLine(vector<int>& a, vector<int>& b) {
int n = a.size();
vector<int> c(n,0);
for(int i = 0;i<n;++i){
c[i] = a[i] - b[i];
}
vector<pair<int,int>> pairs;
for(int i = 0;i<n;++i){
pairs.push_back(make_pair(i,c[i]));
}
sort(pairs.begin(),pairs.end(),[](pair<int,int> operandA, pair<int,int> operandB){
return operandA.second>operandB.second;
});
vector<int> ans;
for(auto pair:pairs){
ans.push_back(pair.first+1);
// cout<<pairs[i].second<<" ";
}
return ans;
}
};
a[i]*(j-1)+b[i]*(n-j) = a[i]*j-a[i]+b[i]*n-b[i]*j = (a[i]-b[i])*j + (b[i]*n-a[i]) 后面部分对所有的 j 都是一样的,因此只需要求出所有 i 对应的 a[i]-b[i],然后按照结果倒序排序就可以了。