当前位置: 首页 > news >正文

【2024华为OD-E卷-100分-boss的收入】(题目+思路+JavaC++Python解析)

题目描述

题目: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在员工中,但它是第一个)。

思路

  1. 提取员工收入:将员工收入从数组中提取出来,存储在另一个数组中。
  2. 排序员工收入:对员工收入数组进行从高到低的排序。
  3. 查找老板收入排名:遍历排序后的员工收入数组,找到老板收入第一次出现的位置,并计算其排名。

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 <algorithm>

int findBossIncomeRank(std::vector<int>& incomes) {
    // 提取员工收入
    std::vector<int> 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::vector<int> 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(reverse=True)
    
    # 查找老板收入排名
    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

相关文章:

【2024华为OD-E卷-100分-boss的收入】(题目+思路+JavaC++Python解析)

题目描述 题目&#xff1a;boss的收入 在一个公司中&#xff0c;有一个老板&#xff08;boss&#xff09;和若干名员工&#xff08;employees&#xff09;。老板和员工的收入信息存储在一个数组中&#xff0c;其中数组的每个元素表示一个人的收入。数组的第0个元素表示老板的…...

《Java8实战》汇总

参考书籍:《Java8 实战》 一、Lambda表达式 Lambda 是一个匿名函数。可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。 1.1、Lambda表达式的关键:从匿名类到 Lambda 的转换 示例: <span style="background-color:#…...

Elasticsearch:搜索相关性

这里写目录标题 一、相关性的概述二、自定义评分策略1、TF-IDF算法2、BM25算法 三、自定义评分策略1、Index Boost&#xff1a;在索引层面修改相关性2、boosting&#xff1a;修改文档相关性3、negative_boost&#xff1a;降低相关性4、function_score&#xff1a;自定义评分5、…...

LeetCode 热题 100_二叉树展开为链表(46_114_中等_C++)(二叉树;先序遍历(递归+数组);先序遍历(递归))

LeetCode 热题 100_二叉树展开为链表&#xff08;46_114&#xff09; 题目描述&#xff1a;输入输出样例&#xff1a;题解&#xff1a;解题思路&#xff1a;思路一&#xff08;先序遍历&#xff08;递归数组&#xff09;&#xff09;&#xff1a;思路二&#xff08;先序遍历&am…...

uniapp实现在card卡片组件内为图片添加长按保存、识别二维码等功能

在原card组件的cover属性添加图片的话&#xff0c;无法在图片上面绑定 show-menu-by-longpress"true"属性&#xff0c;通过将图片自定义添加可使用该属性。 代码&#xff1a; <uni-card title"标题" padding"10px 0" :thumbnail"avata…...

最好用的图文识别OCR -- PaddleOCR(2) 提高推理效率(PPOCR模型转ONNX模型进行推理)

在实际推理过程中&#xff0c;使用 PaddleOCR 模型时效率较慢&#xff0c;经测试每张图片的检测与识别平均耗时超过 5 秒&#xff0c;这在需要大规模自动化处理的场景中无法满足需求。为此&#xff0c;我尝试将 PaddleOCR 模型转换为 ONNX 格式进行推理&#xff0c;以提升效率。…...

Redis--20--大Key问题解析

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 大Key问题1.什么是 Redis 大 Key&#xff1f;在 Redis 中&#xff0c;大 Key 是指单个键值对的数据量非常大&#xff0c;可能包含大量数据。 2. Redis大Key的危害3.…...

新版2024AndroidStudio项目目录结构拆分

如题 下载了最新版的android studio 发现目录结构和以前不一样 自动帮你合并了 如何层层抽丝剥茧呢 按照一下步骤即可解决问题&#xff01;...

STM32内置Flash

一、原理 利用flash存储用户数据需要注意查看&#xff0c;用户数据是否会覆盖芯片运行程序。 IAP&#xff08;在程序中编程&#xff09;利用程序修改程序本身&#xff0c;和OTA是一个原理。IAP在程序中编程支持任意一种通信下载。 ICP&#xff08;在电路中编程&#xff0c;通…...

华为路由器、交换机、AC、新版本开局远程登录那些坑(Telnet、SSH/HTTP避坑指南)

关于华为设备远程登录配置开启的通用习惯1、HTTP/HTTPS相关服务 http secure-server enablehttp server enable 2、Telnet服务telnet server enable3、SSH服务stelnet server enablessh user admin authentication-type password 「模拟器、工具合集」复制整段内容 链接&…...

【Linux】深入理解进程信号机制:信号的产生、捕获与阻塞

&#x1f3ac; 个人主页&#xff1a;谁在夜里看海. &#x1f4d6; 个人专栏&#xff1a;《C系列》《Linux系列》《算法系列》 ⛰️ 时间不语&#xff0c;却回答了所有问题 目录 &#x1f4da;前言 &#x1f4da;一、信号的本质 &#x1f4d6;1.异步通信 &#x1f4d6;2.信…...

前端基础技术全解析:从HTML前端基础标签语言开始,逐步深入CSS样式修饰、JavaScript脚本控制、Ajax异步通信以及WebSocket持久通信

目录 前言&#xff1a; 1.前端技术html简单了解&#xff1a; 1.1HTML代码是由标签构成的。 1.2.HTML 文件基本结构 1.3.HTML 常见标签 标题标签: 段落标签: p 文本格式化标签 图片标签&#xff1a; 超链接标签: a 测试代码&#xff1a; 展示效果&#xff1a; 表单…...

Linux存储管理之核心秘密(The Core Secret of Linux Storage Management)

Linux存储管理之核心秘密 如果你来自Windows环境&#xff0c;那么Linux处理和管理存储设备的方式对你而言可能显得格外不同。我们知道&#xff0c;Linux的文件系统并不采用Windows那样的物理驱动器表示方式&#xff08;如C:、D:或E:&#xff09;&#xff0c;而是构建了一个以&…...

excel精简使用工具

1.获取sheet1的行填充到sheet2的列 希望在 Excel 中使用 INDEX 函数从不同的列中提取数据&#xff0c;并且每一行都引用不同的列。为了实现这个目标&#xff0c;你可以使用 COLUMN 函数来动态获取列的偏移量。 为了避免手动输入每个单元格的公式&#xff0c;你可以使用以下公…...

Flutter鸿蒙化 在鸿蒙应用中添加Flutter页面

前言 今天这节课我们讲一下 在鸿蒙应用中添加Flutter页面。 作用: 之前有很多朋友和网友问我鸿蒙能不能使用Flutter开发,他们的项目已经用Flutter开发成熟了有什么好的方案呢,今天讲到这个就可以很好的解决他们的问题,例如我们正式项目中可能是一部分native 开发 一部分…...

为什么页面无法正确显示?都有哪些HTML和CSS相关问题?

页面无法正确显示可能由多种原因导致&#xff0c;通常与HTML和CSS的结构、语法错误、浏览器兼容性、资源加载等问题有关。以下是一些常见的原因及其解决方法&#xff0c;结合实际项目代码示例进行讲解&#xff1a; 1. HTML 结构错误 HTML 标签的缺失或错误可能导致页面无法正…...

如何制作一份出色的公司介绍PPT?

制作一份公司介绍的PPT需要精心设计&#xff0c;以确保内容既专业又吸引人。以下是一个基本的框架和一些建议&#xff0c;帮助您创建一份有效的公司介绍PPT&#xff1a; PPT标题页 标题&#xff1a;公司全称&#xff08;可使用公司Logo作为背景或嵌入标题中&#xff09;副标题…...

Selenium 进行网页自动化操作的一个示例,绕过一些网站的自动化检测。python编程

这段代码是使用 Selenium 进行网页自动化操作的一个示例&#xff0c;主要目的是在加载网页时执行一些自定义的 JavaScript 代码&#xff0c;并等待页面上某个元素的出现。以下是代码的详细解释&#xff1a; ### 代码解释 #### 导入必要的模块 python from selenium.webdriver…...

HashMap和HashTable的区别

1、HashMap是线程不安全的&#xff0c;HashTable是线程安全的 HashMap&#xff1a;Fail-fast 机制。表示快速失败&#xff0c;在集合遍历过程中&#xff0c;一旦发现容器中的数据被修改了&#xff0c;会立刻抛出ConcurrentModificationException异常&#xff0c;从而导致遍历失…...

使用redis来进行调优有哪些方案?

Redis的调优方案可以从多个方面进行&#xff0c;以下是一些常见的优化方法及代码示例&#xff1a; 1.使用管道&#xff08;Pipelining&#xff09; 管道技术可以减少客户端与Redis之间的交互次数&#xff0c;从而提高性能。在批量操作时&#xff0c;通过管道可以一次性发送多个…...

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする

日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验

系列回顾&#xff1a; 在上一篇中&#xff0c;我们成功地为应用集成了数据库&#xff0c;并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了&#xff01;但是&#xff0c;如果你仔细审视那些 API&#xff0c;会发现它们还很“粗糙”&#xff1a;有…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例&#xff0c;模拟20个网页的爬取&#xff0c;每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程&#xff1a;允许程序同时执行多个任务&#xff0c;提高IO密集型任务&#xff08;如网络请求&#xff09;的效率…...

libfmt: 现代C++的格式化工具库介绍与酷炫功能

libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库&#xff0c;提供了高效、安全的文本格式化功能&#xff0c;是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全&#xff1a…...

DBLP数据库是什么?

DBLP&#xff08;Digital Bibliography & Library Project&#xff09;Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高&#xff0c;数据库文献更新速度很快&#xff0c;很好地反映了国际计算机科学学术研…...

用鸿蒙HarmonyOS5实现中国象棋小游戏的过程

下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...

密码学基础——SM4算法

博客主页&#xff1a;christine-rr-CSDN博客 ​​​​专栏主页&#xff1a;密码学 &#x1f4cc; 【今日更新】&#x1f4cc; 对称密码算法——SM4 目录 一、国密SM系列算法概述 二、SM4算法 2.1算法背景 2.2算法特点 2.3 基本部件 2.3.1 S盒 2.3.2 非线性变换 ​编辑…...

PydanticAI快速入门示例

参考链接&#xff1a;https://ai.pydantic.dev/#why-use-pydanticai 示例代码 from pydantic_ai import Agent from pydantic_ai.models.openai import OpenAIModel from pydantic_ai.providers.openai import OpenAIProvider# 配置使用阿里云通义千问模型 model OpenAIMode…...

Java中栈的多种实现类详解

Java中栈的多种实现类详解&#xff1a;Stack、LinkedList与ArrayDeque全方位对比 前言一、Stack类——Java最早的栈实现1.1 Stack类简介1.2 常用方法1.3 优缺点分析 二、LinkedList类——灵活的双端链表2.1 LinkedList类简介2.2 常用方法2.3 优缺点分析 三、ArrayDeque类——高…...

PLC入门【4】基本指令2(SET RST)

04 基本指令2 PLC编程第四课基本指令(2) 1、运用上接课所学的基本指令完成个简单的实例编程。 2、学习SET--置位指令 3、RST--复位指令 打开软件(FX-TRN-BEG-C)&#xff0c;从 文件 - 主画面&#xff0c;“B: 让我们学习基本的”- “B-3.控制优先程序”。 点击“梯形图编辑”…...