以下题目是在投递华为外包的时候收到邮件要求自己学习的算法,具体题目也不太清楚,都是从网上搜到的,然后大概搞了一下答案,主要是想让自己看起来方便一些。
1.航班预订座位数(来自leetcode)
参考链接:https://leetcode-cn.com/problems/corporate-flight-bookings/
class Solution {
public:
vector<int> corpFlightBookings(vector<vector<int>>& bookings, int n) {
vector<int> res(n+1,0);
for(auto &b :bookings){
res[b[0]-1]+=b[2];
res[b[1]]-=b[2];
}
for(int i=1;i<n;++i){
res[i]+=res[i-1];
}
res.pop_back();
return res;
}
};
或者有可能是题目如下:
给定多组原本的航班预订信息(航班号,座位号,乘客姓名),以及多组要改签的航班信息(原本航班号,原本座位号,新航班号,新座位号)
输出最后的航班预订信息,要是有重复的内容,以最新改签的为标准
输入的内容如下: 3 表示原本的航班信息数,2表示要改签的航班数
3
CZ7132,A1,ZHANGSAN
CZ7132,A2,ZHAOSI
CZ7156,A2,WANGWU
2
CZ7132,A1,CZ7156,A2
CZ7156,A2,CZ7156,A3
输出内容如下:
CZ7132,A2,ZHAOSI
CZ7156,A2,ZHANGSA
CZ7156,A3,WANGW
参考链接:https://blog.csdn.net/Kyrie001/article/details/102459731
//
// main.cpp
// huawei
//
// Created by Apple on 2020/2/29.
// Copyright © 2020年 Apple. All rights reserved.
//
#include <iostream>
#include <vector>
#include <string>
#include <map>
using namespace std;
int main(int argc, const char * argv[]) {
int n1;
map<string,string > data;
map<string,string > coutdata;
map<string,string > updatedata;
map <string, string>::iterator a,b;
cin>>n1;
getchar();
cout<<n1<<endl;
for(int i=0;i<n1;i++){
string str1;
cin>>str1;
cout<<str1<<endl;
int a,len;
a=str1.rfind(",");
len=str1.