重庆做木门网站公司简介,做一款游戏app需要多少钱,十大互联网平台,郑州网络营销网站题目描述
题目#xff1a;boss的收入
在一个公司中#xff0c;有一个老板#xff08;boss#xff09;和若干名员工#xff08;employees#xff09;。老板和员工的收入信息存储在一个数组中#xff0c;其中数组的每个元素表示一个人的收入。数组的第0个元素表示老板的…题目描述
题目boss的收入
在一个公司中有一个老板boss和若干名员工employees。老板和员工的收入信息存储在一个数组中其中数组的每个元素表示一个人的收入。数组的第0个元素表示老板的收入后续元素依次表示员工的收入。
你的任务是计算老板的收入在所有员工收入中的排名从高到低。如果老板的收入有多个相同的值则排名的顺序按照第一次出现的最高收入开始计算。例如如果员工的收入是 [100, 200, 200, 300]那么排名为
第1名300第2名200第一个出现的200第3名200第二个出现的200第4名100
老板的收入排名就是他在员工收入排序后的位置从1开始计数。
输入
一个整数数组 incomes其中 incomes[0] 是老板的收入incomes[1:] 是员工的收入。
输出
一个整数表示老板的收入在员工收入中的排名。
示例
输入[500, 300, 200, 100, 400, 500]输出2解释员工的收入排序后为 [500, 400, 300, 200, 100]老板的收入 500 排名为第2因为有一个相同的500在员工中但它是第一个。
思路
提取员工收入将员工收入从数组中提取出来存储在另一个数组中。排序员工收入对员工收入数组进行从高到低的排序。查找老板收入排名遍历排序后的员工收入数组找到老板收入第一次出现的位置并计算其排名。
Java 代码解析
import java.util.Arrays;public class BossIncomeRank { public static int findBossIncomeRank(int[] incomes) { // 提取员工收入 int[] employeeIncomes Arrays.copyOfRange(incomes, 1, incomes.length); // 排序员工收入从高到低 Arrays.sort(employeeIncomes); for (int i 0; i employeeIncomes.length / 2; i) { int temp employeeIncomes[i]; employeeIncomes[i] employeeIncomes[employeeIncomes.length - 1 - i]; employeeIncomes[employeeIncomes.length - 1 - i] temp; } // 查找老板收入排名 int bossIncome incomes[0]; int rank 1; for (int income : employeeIncomes) { if (income bossIncome) { return rank; } rank; } // 如果老板收入在所有员工收入之上则排名为员工人数 1 return employeeIncomes.length 1; } public static void main(String[] args) { int[] incomes {500, 300, 200, 100, 400, 500}; System.out.println(findBossIncomeRank(incomes)); // 输出2 }}
C 代码解析
#include iostream#include vector#include algorithmint findBossIncomeRank(std::vectorint incomes) { // 提取员工收入 std::vectorint employeeIncomes(incomes.begin() 1, incomes.end()); // 排序员工收入从高到低 std::sort(employeeIncomes.rbegin(), employeeIncomes.rend()); // 查找老板收入排名 int bossIncome incomes[0]; int rank 1; for (int income : employeeIncomes) { if (income bossIncome) { return rank; } rank; } // 如果老板收入在所有员工收入之上则排名为员工人数 1 return employeeIncomes.size() 1;}int main() { std::vectorint incomes {500, 300, 200, 100, 400, 500}; std::cout findBossIncomeRank(incomes) std::endl; // 输出2 return 0;}
Python 代码解析
def find_boss_income_rank(incomes): # 提取员工收入 employee_incomes incomes[1:] # 排序员工收入从高到低 employee_incomes.sort(reverseTrue) # 查找老板收入排名 boss_income incomes[0] rank 1 for income in employee_incomes: if income boss_income: return rank rank 1 # 如果老板收入在所有员工收入之上则排名为员工人数 1 return len(employee_incomes) 1# 测试incomes [500, 300, 200, 100, 400, 500]print(find_boss_income_rank(incomes)) # 输出2