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

华为OD的职级与薪资

华为 OD

这几年随着招聘行情的日渐严峻,不少 985 高校出来的学生都开始放宽对"外包"的看法,其中华为 OD 以"待遇断层领先"的姿态成为不少求职者(不得已)的外包首选。

既然如此,我们就好好梳理一下华为 OD 的职级和待遇:

  • 13 级:9000 ~ 13000
  • 14 级:13000 ~ 17000
  • 15 级:17000 ~ 21000
  • 16 级:21000 ~ 25000
  • 17 级:25000 ~ 32000

除了月薪(base),华为 OD 也是有年终奖的,年终奖和个人绩效挂钩,绩效为 A 可以拿 4 个月年终,绩效为 B 可以拿 2 个月年终,因此华为 OD 年终奖的范围在 2~4 个月。

另外,有意思的是,华为 OD 相比于正式员工更容易获得 A 绩效,但新员工前 6 个月的试用期(工资不打折)默认绩效为 B。

除此以外,还有大家最关心的"加班费"问题。

华为 OD 是有加班费的,加班工资为平时工资的两倍,但每个月的最后一个星期六默认需要加班,若不参加需要额外请假。

至于其他「带薪年假、夜宵、班车、加班打车报销」等福利,也都是和正式员工一致。

综合来看,华为 OD 至少从待遇上要比外面中小厂好上不少。

对此,你怎么看,相比前几年,你对"外包"的看法有发生改变吗?欢迎评论区交流。

...

回归主线。

假期余额不足,来一道高频面试题醒醒脑。

题目描述

平台:LeetCode

题号:692

给一非空的单词列表,返回前 k 个出现次数最多的单词。

返回的答案应该按单词出现频率由高到低排序。

如果不同的单词有相同出现频率,按字母顺序排序。

示例 1:

输入: ["i""love""leetcode""i""love""coding"], k = 2

输出: ["i""love"]

解析: "i" 和 "love" 为出现次数最多的两个单词,均为2次。
    注意,按字母顺序 "i" 在 "love" 之前。

示例 2:

输入: ["the""day""is""sunny""the""the""the""sunny""is""is"], k = 4

输出: ["the""is""sunny""day"]

解析: "the""is""sunny" 和 "day" 是出现次数最多的四个单词,
    出现次数依次为 4, 3, 2 和 1 次。

注意:

  • 假定 k 总为有效值, 1 ≤ k ≤ 集合元素数
  • 输入的单词均由小写字母组成。

扩展练习:

  • 尝试以  时间复杂度和  空间复杂度解决。

哈希表 & 优先队列(堆)

这道题是在「优先队列(堆)」裸题的基础上增加了字典序大小的比较。

相应的,我们不能只根据「词频大小」构建小根堆来获取前 个元素,还需要结合字典序大小来做。

具体的,我们可以使用「哈希表」&「优先队列」进行求解:

  1. 使用「哈希表」来统计所有的词频
  2. 构建大小为 按照「词频升序 + (词频相同)字典序倒序」的优先队列:
    • 如果词频不相等,根据词频进行升序构建,确保堆顶元素是堆中词频最小的元素
    • 如果词频相等,根据字典序大小进行倒序构建,结合 可以确保堆顶元素是堆中「词频最小 & 字典序最大」的元素
  3. 对所有元素进行遍历,尝试入堆:
    • 堆内元素不足 个:直接入堆
    • 词频大于堆顶元素:堆顶元素不可能是前 大的元素。将堆顶元素弹出,并将当前元素添加到堆中
    • 词频小于堆顶元素;当前元素不可能是前 大的元素,直接丢弃。
    • 词频等于堆顶元素:根据当前元素与堆顶元素的字典序大小决定(如果字典序大小比堆顶元素要小则入堆)
  4. 输出堆内元素,并翻转

代码:

class Solution {
    public List<String> topKFrequent(String[] words, int k) {
        Map<String, Integer> map = new HashMap<>();
        for (String w : words) map.put(w, map.getOrDefault(w, 0) + 1);
        PriorityQueue<Object[]> q = new PriorityQueue<>(k, (a, b)->{ 
            // 如果词频不同,根据词频升序
            int c1 = (Integer)a[0], c2 = (Integer)b[0];
            if (c1 != c2) return c1 - c2;
            // 如果词频相同,根据字典序倒序
            String s1 = (String)a[1], s2 = (String)b[1];
            return s2.compareTo(s1);
        });
        for (String s : map.keySet()) {
            int cnt = map.get(s);
            if (q.size() < k) { // 不足 k 个,直接入堆
                q.add(new Object[]{cnt, s});
            } else {
                Object[] peek = q.peek();
                if (cnt > (Integer)peek[0]) { // 词频比堆顶元素大,弹出堆顶元素,入堆
                    q.poll();
                    q.add(new Object[]{cnt, s});
                } else if (cnt == (Integer)peek[0]) { // 词频与堆顶元素相同
                    String top = (String)peek[1];
                    if (s.compareTo(top) < 0) { // 且字典序大小比堆顶元素小,弹出堆顶元素,入堆
                        q.poll();
                        q.add(new Object[]{cnt, s});
                    }
                }
            }
        }
        List<String> ans = new ArrayList<>();
        while (!q.isEmpty()) ans.add((String)q.poll()[1]);
        Collections.reverse(ans);
        return ans;
    }
}

C++ 代码:

class Solution {
public:
    vector<stringtopKFrequent(vector<string>& words, int k) {
        unordered_map<stringintmap;
        for (auto& w : words) map[w]++;
        auto comp = [](const pair<intstring>& a, const pair<intstring>& b) {
            if (a.first != b.first) return a.first > b.first;
            return a.second < b.second;
        };
        priority_queue<pair<intstring>, vector<pair<intstring>>, decltype(comp)q(comp);
        for (auto& s : map) {
            int cnt = s.second;
            if (q.size() < k) {
                q.push({cnt, s.first});
            } else {
                if (cnt > q.top().first) {
                    q.pop();
                    q.push({cnt, s.first});
                } else if (cnt == q.top().first) {
                    if (s.first.compare(q.top().second) < 0) {
                        q.pop();
                        q.push({cnt, s.first});
                    }
                }
            }
        }
        vector<string> ans;
        while (!q.empty()) {
            ans.push_back(q.top().second);
            q.pop();
        }
        reverse(ans.begin(), ans.end());
        return ans;
    }
};
  • 时间复杂度:使用哈希表统计词频,复杂度为 ;使用最多 个元素维护一个大小为 的堆,复杂度为 ;输出答案复杂度为 (同时 )。整体复杂度为
  • 空间复杂度:

最后

巨划算的 LeetCode 会员优惠通道目前仍可用 ~

使用福利优惠通道 leetcode.cn/premium/?promoChannel=acoier,年度会员 有效期额外增加两个月,季度会员 有效期额外增加两周,更有超大额专属 🧧 和实物 🎁 福利每月发放。

我是宫水三叶,每天都会分享算法知识,并和大家聊聊近期的所见所闻

欢迎关注,明天见。

更多更全更热门的「笔试/面试」相关资料可访问排版精美的 合集新基地 🎉🎉

相关文章:

华为OD的职级与薪资

华为 OD 这几年随着招聘行情的日渐严峻&#xff0c;不少 985 高校出来的学生都开始放宽对"外包"的看法&#xff0c;其中华为 OD 以"待遇断层领先"的姿态成为不少求职者&#xff08;不得已&#xff09;的外包首选。 既然如此&#xff0c;我们就好好梳理一下…...

【HTML5】html5开篇基础(4)

1.❤️❤️前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; Hello, Hello~ 亲爱的朋友们&#x1f44b;&#x1f44b;&#xff0c;这里是E绵绵呀✍️✍️。 如果你喜欢这篇文章&#xff0c;请别吝啬你的点赞❤️❤️和收藏&#x1f4d6;&#x1f4d6;。如果你对我的…...

HTTP【网络】

文章目录 HTTPURL(Uniform Resource Lacator) HTTP协议格式HTTP的方法HTTP的状态码HTTP常见的Header HTTP 超文本传输协议&#xff0c;是一个简单的请求-响应协议&#xff0c;HTTP通常运行在TCP之上 URL(Uniform Resource Lacator) 一资源定位符&#xff0c;也就是通常所说的…...

MQ延迟消息:原理、实现与应用

在现代分布式系统中&#xff0c;消息队列&#xff08;Message Queue&#xff0c;简称MQ&#xff09;已经成为实现异步通信、解耦服务和削峰填谷的重要工具。延迟消息&#xff08;Delayed Message&#xff09;作为MQ的一种高级特性&#xff0c;允许消息在指定的延迟时间后投递到…...

计算机网络—大端序和小端序

大端序和小端序 大端序&#xff08;Big-endian&#xff09;和小端序&#xff08;Little-endian&#xff09;是指在多字节数据类型&#xff08;如整数或浮点数&#xff09;的存储和表示方式上的不同。以下是关于大端序和小端序的详细解释&#xff1a; 一、定义 大端序&#xf…...

《OpenCV 计算机视觉》—— Harris角点检测、SIFT特征检测

文章目录 一、Harris 角点检测1.基本思想2.检测步骤3.OpenCV实现 二、SIFT特征检测1. SIFT特征检测的基本原理2. SIFT特征检测的特点3. OpenCV 实现 一、Harris 角点检测 OpenCV中的Harris角点检测是一种基于图像灰度值变化的角点提取算法&#xff0c;它通过计算每个像素点的响…...

rtmp协议转websocketflv的去队列积压

websocket server的优点 websocket server的好处&#xff1a;WebSocket 服务器能够实现实时的数据推送&#xff0c;服务器可以主动向客户端发送数据 1 不需要客户端不断轮询。 2 不需要实现httpserver跨域。 在需要修改协议的时候比较灵活&#xff0c;我们发送数据的时候比较…...

Elasticsearch实战应用:构建高效搜索引擎

在大数据时代&#xff0c;如何高效存储和检索海量信息成为了一个重要课题。Elasticsearch作为一个开源的分布式搜索引擎&#xff0c;以其强大的搜索能力和灵活的扩展性&#xff0c;成为了许多企业和开发者的首选。本文将深入探讨Elasticsearch的实战应用&#xff0c;包括基本概…...

Hive数仓操作(四)

一、Hive 创建表案例一&#xff08;ARRAY数组类型&#xff09; 1. 准备数据文件 首先&#xff0c;准备一个名为 stu2.txt 的文件&#xff0c;文件内容示例如下&#xff1a; 1001 Alice fish,cat 1002 Bob dog,rabbit 1003 Charlie bird注意&#xff1a; …...

《C++跨平台开发:突破界限,释放无限可能》

在当今的软件开发领域&#xff0c;跨平台开发已成为一种重要趋势。它允许开发者编写一次代码&#xff0c;然后在多个不同的操作系统和硬件平台上运行&#xff0c;极大地提高了开发效率和软件的可扩展性。而 C作为一种强大的编程语言&#xff0c;也具备实现跨平台开发的能力。本…...

速盾:免备案服务器?

速盾是一家提供网络安全服务的公司&#xff0c;其主要产品包括CDN加速、WEB防护、WAF、DDoS防护等。在网站建设过程中&#xff0c;选择一个合适的服务器是非常重要的一步。传统的服务器需要备案&#xff0c;涉及到较多的流程和审批时间&#xff0c;给网站运营带来了一定的麻烦。…...

Electron获取nodejs和chrome版本信息

Electron获取nodejs和chrome版本信息 环境&#xff1a; electron: 30.1.1 nodejs: 20.14.0代码 $ tree . --- index.html --- index.js --- package.jsonindex.html <!DOCTYPE html> <html><head><meta charset"UTF-8" /><title>H…...

【React】setState 批量更新

setState 批量更新的过程 React 的 setState 调用是异步的。为了性能原因&#xff0c;React 会将多个 setState 调用合并成一次批量更新。具体过程如下&#xff1a; 1&#xff09;React 先将调用的每个 setState 所产生的更新对象存储在一个队列中。 2&#xff09;在所有的同步…...

微信小程序开发日记第二天

坚持在各个平台更新自己写小程序的心得体会&#xff0c;在百度贴吧和csdn更新自己的小程序日记&#xff0c;同时也是个体不断地对于云技术的开发和成长&#xff0c;进行提升&#xff01;不断地将开源开放创新思维运用到自己的小程序当中&#xff0c;小程序制作的关键就是&#…...

如果您忘记了 Apple ID 和密码,按照指南可重新进入您的设备

即使您的 iPhone 或 iPad 由于各种原因被锁定或禁用&#xff0c;也可以使用 iTunes、“查找我的”、Apple 支持和 iCloud 解锁您的设备。但是&#xff0c;此过程需要您的 Apple ID 和密码来验证所有权并移除激活锁。如果您忘记了 Apple ID 和密码&#xff0c;请按照我们的指南重…...

Top4免费音频剪辑软件大比拼,2024年你选哪一款?

现在我们生活在一个数字化的时代&#xff0c;音频内容对我们来说很重要。不管是给自己拍的视频配背景音乐、整理开会时的录音&#xff0c;还是自己写歌&#xff0c;有个好用的音频剪辑软件都特别重要。今天&#xff0c;我要给大家介绍几款特别好用的音频剪辑软件免费的&#xf…...

基于SSM的电影院售票系统设计与实现

文未可获取一份本项目的java源码和数据库参考。 前言 近些年的电影在人们文娱活动中占据重要地位&#xff0c;另外&#xff0c;由于人们的生活越来越富有&#xff0c;越来越多的人们不再选择在家里看电影&#xff0c;而是选择去电影院看电影。但是&#xff0c;以往的售票方式是…...

uniapp 必须掌握的细节

1.使用watch实现实时监控的效果 例如&#xff1a;实时监测手机号码的示例 // 实时监测手机号码 watch(() > UserRegisterForm.value.phone, (newPhone) > {// 简单的手机号码正则表达式验证const phoneRegex /^1[3-9]\d{9}$/;tips.value.tipPhone !phoneRegex.test(n…...

JavaWeb——Vue组件库Element(3/6):常见组件:Dialog对话框、Form表单(介绍、使用、实际效果)

目录 Dialog对话框 介绍 使用 实际效果 Form表单 介绍 使用 实际效果 Dialog对话框 介绍 Dialog对话框&#xff1a;在保留当前页面状态的情况下&#xff0c;告知用户并承载相关操作。 Dialog 对话框组件可以在保留当前页面信息的状态下弹出一个对话框&#xff0c;并…...

一个月学会Java 第2天 认识类与对象

Day2 认识类与对象 第一章 初识类 经过一个程序的编写&#xff0c;应该对程序的结构有点好奇了吧&#xff0c;如果你有基础&#xff0c;接下来的肯定非常的易懂&#xff0c;如果你没有基础也没有关系&#xff0c;反复琢磨一下也就懂了&#x1f606; 我们来重复一下第一个程序 …...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

React Native 导航系统实战(React Navigation)

导航系统实战&#xff08;React Navigation&#xff09; React Navigation 是 React Native 应用中最常用的导航库之一&#xff0c;它提供了多种导航模式&#xff0c;如堆栈导航&#xff08;Stack Navigator&#xff09;、标签导航&#xff08;Tab Navigator&#xff09;和抽屉…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天&#xff0c;Spring AI 作为 Spring 生态系统的新生力量&#xff0c;正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务&#xff08;如 OpenAI、Anthropic&#xff09;的无缝对接&…...

今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存

文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...

HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散

前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说&#xff0c;在叠衣服的过程中&#xff0c;我会带着团队对比各种模型、方法、策略&#xff0c;毕竟针对各个场景始终寻找更优的解决方案&#xff0c;是我个人和我司「七月在线」的职责之一 且个人认为&#xff0c…...

CppCon 2015 学习:Time Programming Fundamentals

Civil Time 公历时间 特点&#xff1a; 共 6 个字段&#xff1a; Year&#xff08;年&#xff09;Month&#xff08;月&#xff09;Day&#xff08;日&#xff09;Hour&#xff08;小时&#xff09;Minute&#xff08;分钟&#xff09;Second&#xff08;秒&#xff09; 表示…...

大数据驱动企业决策智能化的路径与实践

&#x1f4dd;个人主页&#x1f339;&#xff1a;慌ZHANG-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 一、引言&#xff1a;数据驱动的企业竞争力重构 在这个瞬息万变的商业时代&#xff0c;“快者胜”的竞争逻辑愈发明显。企业如何在复杂环…...