【编程题目 |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++解法一


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#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)
{
#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) {
#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%内容,订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看

C++解法二


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include<bits/stdc++.h>
using namespace std;
#include<bits/stdc++.h> using namespace std;
#include<bits/stdc++.h>

using namespace std;

剩余50%内容,订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看

Python


Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
import json
class Node:
def __init__(self, val):
self.val = val
self.students = []
import json class Node: def __init__(self, val): self.val = val self.students = []
import json

class Node:
    def __init__(self, val):
        self.val = val
        self.students = []

剩余50%内容,订阅会员后查看


隐藏内容

此处内容需要权限查看

  • 普通用户特权:11金币
  • 会员用户特权:免费
  • 永久会员用户特权:免费推荐
会员免费查看