【编程题目 |200分】找到比自己强的人数【2022 Q2考试题】
时间限制:C/C++ 1秒,其他语言 2秒
空间限制:C/C++262144K,其他语言524288K
64bit IO Format:%lld
本题可使用本地IDE编码,不能使用本地已有代码,无跳出限制,
编码后请点击”保存并调试“按钮进行代码提交。
■ 题目描述
给定数组[[2,1],[3 2]],每组表示师徒关系,第一个元素是第二个元素的老师,数字代表排名,现在找出比自己强的徒弟。
输入
[[2,1],[3,2]]
输出
[0,1,2]
第一行数据[2,1]表示排名第 2 的员工是排名第 1 员工的导师,后面的数据以此类推。
说明
第一个元素 0 表示成绩排名第一的导师,没有徒弟考试超过他;
第二个元素 1 表示成绩排名第二的导师,有 1 个徒弟成绩超过他
第三个元素 2 表示成绩排名第二的导师,有 2 个徒弟成绩超过他
输入
[[2,1],[3,2]]
输出
[0,1,2]
C++解法一
#include <iostream> #include <unordered_map> #include <string> #include <vector> #include <algorithm> using namespace std; void SplitInt(string input, vector<int>& output, char patten) { string one_word = ""; int j = 0; input += patten; for (int i = 0; i < input.size(); i++) { if (input[i] == patten) { one_word = input.substr(j, i - j); if (!one_word.empty()) { output.push_back(stoi(one_word)); } one_word = ""; j = i + 1; } } } void SplitString(string input, vector<string>& output, string pattern) { string::size_type pos; input += pattern; for (int i = 0; i < input.size(); i++) { pos = input.find(pattern, i); if (pos < input.size()) { string temp = input.substr(i, pos - i); if ((temp != pattern) && (!temp.empty())) { output.push_back(temp); } i = pos + pattern.size() - 1; } } } vector<int> FindSomeoneBetterThanMyself(vector <vector<int>> martix) {
剩余50%内容,订阅会员后查看
隐藏内容
此处内容需要权限查看
会员免费查看C++解法二
#include<bits/stdc++.h> using namespace std;
剩余50%内容,订阅会员后查看
隐藏内容
此处内容需要权限查看
会员免费查看Python
import json class Node: def __init__(self, val): self.val = val self.students = []
剩余50%内容,订阅会员后查看
隐藏内容
此处内容需要权限查看
会员免费查看声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。