阿里员工自曝:某多多的4轮面试都通过了,但到了谈薪资的环节,被HR为难

HR 的为难

又是一期「排雷+心理按摩」,正在密谋年底跳槽的同学需要额外注意。

起源是我看到了这么一篇帖子分享:

alt

一位目前应该还是在职的阿里巴巴的员工,前后花了一个多月的时间,顺利通过了某多多的 4 轮面试。

按道理,4 轮面试都过了,流程也差不多进入尾声了。

这时候如果再因为一些非硬性指标,未能谈成,会尤其可惜。

沉没成本嘛,很好理解。

然而,就在候选人觉得一切顺利的时候,却遭遇了 HR 的“特殊”对待。

其实就是谈薪的时候,HR 需要候选人的上一份工作的薪资证明。

候选人显示开具了税前收入证明,被 HR 拒绝,要求开具银行流水。

候选人再提供了带公章的银行流水,再次被 HR 拒绝,要求开具工资单加交税证明。

此时候选人有点不耐烦了,说「要不算了吧」,结果对方直接挂电话了 🤣

从这件事上,看得出这位 HR 很不专业。

需要的材料没有一次说明清楚,在候选人表达不满的时候,不是选择进行安抚说明,而是直接挂掉电话,似乎就是在等候选人主动放弃岗位一样。

再细看评论区,发现有同样经历的不止楼主一人:

alt

这位网友也是面完 4 轮,到谈薪阶段,该网友给出报价后,遭遇 HR 的冷漠拒绝:只说给不到,也不明说该岗位的薪资范围。

另外一位,则是上份工作是在华为的网友爆料:

alt

给 HR 提供的个税截图被质疑真实性,还提出个税中的收入金额是否包含报销费用等问题,引发候选人的不满,直接放弃入职。

...

确实,有时候我们很难判断 HR 是真的缺乏专业性,还是因为不想招人了而进行的故意拖延。

但我们又无法要求将 HR 沟通的这一步进行前置,这不现实。

目前所能做的最合理的做法只能是:求职过程中,有些公司的流程快,有些公司流程慢,无论快慢,都以发 offer 为准,不要将流程的繁琐视为沉没成本,如果在已经离职的情况下,尽量多家面试并行投递推进,既可以帮助自己快速进入面试状态,也不会落入流程走了一个多月,到之后没谈拢的局面。

...

回归主线。

现在的大厂面试,不管校招还是社招,去哪都得做算法面试题。

来一道「华为」面试真题。

题目描述

平台:LeetCode

题号:524

给你一个字符串 s 和一个字符串数组 dictionary 作为字典。

找出并返回字典中最长的字符串,该字符串可以通过删除 s 中的某些字符得到。

如果答案不止一个,返回长度最长且字典序最小的字符串。

如果答案不存在,则返回空字符串。

示例 1:

输入:s = "abpcplea", dictionary = ["ale","apple","monkey","plea"]

输出:"apple"

示例 2:

输入:s = "abpcplea", dictionary = ["a","b","c"]

输出:"a"

提示:

  • sdictionary[i] 仅由小写英文字母组成

排序 + 双指针 + 贪心

根据题意,我们需要找到 dictionary 中为 s 的子序列,且「长度最长(优先级 )」及「字典序最小(优先级 )」的字符串。

数据范围全是

我们可以先对 dictionary 根据题意进行自定义排序:

  1. 长度不同的字符串,按照字符串长度排倒序;
  2. 长度相同的,则按照字典序排升序。

然后我们只需要对 dictionary 进行顺序查找,找到的第一个符合条件的字符串即是答案。

具体的,我们可以使用「贪心」思想的「双指针」实现来进行检查:

  1. 使用两个指针 ij 分别代表检查到 sdictionary[x] 中的哪位字符;
  2. s[i] != dictionary[x][j],我们使 i 指针右移,直到找到 s 中第一位与 dictionary[x][j] 对得上的位置,然后当 ij 同时右移,匹配下一个字符;
  3. 重复步骤 ,直到整个 dictionary[x] 被匹配完。

证明:对于某个字符 dictionary[x][j] 而言,选择 s「当前」 所能选择的下标最小的位置进行匹配,对于后续所能进行选择方案,会严格覆盖不是选择下标最小的位置,因此结果不会变差。

Java 代码:

class Solution {
    public String findLongestWord(String s, List<String> dictionary) {
        Collections.sort(dictionary, (a,b)->{
            if (a.length() != b.length()) return b.length() - a.length();
            return a.compareTo(b);
        });
        int n = s.length();
        for (String ss : dictionary) {
            int m = ss.length();
            int i = 0, j = 0;
            while (i < n && j < m) {
                if (s.charAt(i) == ss.charAt(j)) j++;
                i++;
            }
            if (j == m) return ss;
        }
        return "";
    }
}

C++ 代码:

class Solution {
public:
    string findLongestWord(string s, vector<string>& dictionary) {
        sort(dictionary.begin(), dictionary.end(), [](const string& a, const string& b) {
            if (a.length() != b.length()) return b.length() < a.length();
            return a < b;
        });
        int n = s.length();
        for (const string& word : dictionary) {
            int m = word.length();
            int i = 0, j = 0;
            while (i < n && j < m) {
                if (s[i] == word[j]) j++;
                i++;
            }
            if (j == m) return word;
        }
        return "";
    }
};

Python 代码:

class Solution:
    def findLongestWord(self, s: str, dictionary: List[str]) -> str:
        dictionary.sort(key=lambda x: (-len(x), x))
        n = len(s)
        for word in dictionary:
            m = len(word)
            i, j = 00
            while i < n and j < m:
                if s[i] == word[j]: j += 1
                i += 1
            if j == m: return word
        return ""

TypeScript 代码:

function findLongestWord(s: string, dictionary: string[]): string {
    dictionary.sort((a, b) => {
        if (a.length !== b.length) return b.length - a.length;
        return a.localeCompare(b);
    });
    const n = s.length;
    for (const word of dictionary) {
        const m = word.length;
        let i = 0, j = 0;
        while (i < n && j < m) {
            if (s[i] === word[j]) j++;
            i++;
        }
        if (j === m) return word;
    }
    return "";  
};
  • 时间复杂度:令 ns 的长度, mdictionary 的长度。排序复杂度为 ;对 dictionary 中的每个字符串进行检查,单个字符串的检查复杂度为 。整体复杂度为
  • 空间复杂度:

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

欢迎关注,明天见。

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

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/646389.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows下nginx代理静态资源失效

起因&#xff1a;想把公司网站弄成动静分离的&#xff0c;但是本地代理静态图片一致失效。 1.查看通配符是否正确 2.查看路径是否正确 还有一种可能是我没想到的&#xff0c;nginx进程没关闭掉导致的&#xff0c;属实离谱&#xff0c;我打开任务管理器搜索nginx&#xff0c;…

snmp网管服务MIB Browser使用

MIB Browser 软件打开显示界面&#xff0c;首先需要配置地址、端口号、团体名、snmp版本点击Advanced&#xff0c;弹出配置界面 配置成功后双击走测列表信息就可以查看交换机端口状态、版本号等信息&#xff1b; 例如&#xff1a;我的交换机8号端口是正常&#xff0c;其他端口是…

bash 5.2中文修订1

Bash Features&#xff08;专题&#xff09; 本文简要描述了 Bash shell&#xff08;版本 5.2&#xff0c;2022 年 9 月 19 日&#xff09;中的功能。 Bash 主页是 http://www.gnu.org/software/bash/ 。 这是 5.2 版&#xff0c;最后更新于 2022 年 9 月 19 日&#xff0c;GN…

蓝桥杯备战——4.继电器/蜂鸣器

1.分析原理图 最好自己先去查查138以及ULN2003的使用方法&#xff0c;我这里直接讲思路。 由上图我们可以看到如果138输入ABC101,则输出Y50,此时若WR通过跳线帽接地则Y5C1 &#xff0c;于是573(U9)处于输出跟随输入P0状态&#xff0c;此时若P061&#xff0c;则573输出Q71&am…

CPC认证 TEMU出口儿童便携式游泳池ASTM F2666测试标准

便携式游泳池是由PVC加网布制成供儿童和家庭洗澡娱乐的便携式游泳池。简介它和国内的充气水池区别在于&#xff0c;充气水池主要是供儿童钓鱼或摸鱼娱乐而用。所以&#xff0c;业内又叫其为摸鱼池。儿童充气游泳池上架亚马逊出口需要办理CPC认证ASTM F2666标准测试。咨询看首页…

Vue好看的组件库:Element

文章目录 1、什么是Element2、Element快速入门3、Element布局3.1、 Layout 局部3.2、容器布局 1、什么是Element Element&#xff1a;是饿了么公司前端开发团队提供的一套基于 Vue 的网站组件库&#xff0c;用于快速构建网页 Element 提供了很多组件&#xff08;组成网页的部件…

怎么隐藏磁盘或U盘分区?

隐藏分区需求确实存在&#xff01; 某用户将自己的U盘驱动器分为两个分区&#xff0c;一个是可引导的活动主分区&#xff0c;另一个分区包含服务包和其他用于技术支持的内容&#xff0c;他一直被以下两个问题所困扰&#xff1a; 是否可以隐藏U盘分区&#xff1f; 如果想更改内…

10.docker卷

Docker Volume ​Docker Volume 是 docker的数据卷&#xff0c;用于保持数据持久化。MySQL运行在Docker容器中时&#xff0c;一般将数据通过Docker Volume保存在主机上&#xff0c;即使删除MySQL容器&#xff0c;数据不会丢失。 MySQL Dockerfile 找到docker hub上的mysql 5…

QEMU搭建arm虚拟机开发环境

获取QEMU代码 git clone https://gitlab.com/qemu-project/qemu.git 切换对应的工程分支 使用git指令切换到对应的分支上&#xff0c;我这里使用的是stable-4.0的分支 git checkout -b stable-4.0 remotes/origin/stable-4.0 配置&编译 在工程的根目录下执行 ./conf…

关于Spring和缓存雪崩、穿透、击穿、预热的最常见的十道面试题

面试题一&#xff1a;什么是缓存雪崩&#xff1f;如何解决缓存雪崩&#xff1f; 缓存雪崩指的是在短时间内&#xff0c;有大量的请求直接查询术后句酷&#xff0c;从而对数据库造成大量的压力&#xff0c;严重情况下可能导致数据库宕机的情况叫做缓存雪崩 我们可以看一下正常…

【CANoe使用大全】——DBC数据库制作

文章目录 1.DBC数据库选择1.1.DBC模板选择1.3. 新建报文1.4. 新建信号1.5.数值表建立 2. DBC导入 1.DBC数据库选择 首先找到DBC编辑器入口 1.1.DBC模板选择 举例说明&#xff1a; 新建选择CANFD的模板 1.3. 新建报文 注意上图中报文周期“Cycle Time”处于不可编辑状态…

初探二分法

推荐阅读 智能化校园&#xff1a;深入探讨云端管理系统设计与实现&#xff08;一&#xff09; 智能化校园&#xff1a;深入探讨云端管理系统设计与实现&#xff08;二&#xff09; 文章目录 推荐阅读题目解法一解法二 题目 题目&#xff1a;给定一个 n 个元素有序的&#xff0…

C语言常见面试题:什么是条件编译,条件编译的作用是什么?

条件编译是一种编程技术&#xff0c;它允许程序员根据不同的条件来选择性地编译源代码中的部分内容。条件编译在编译过程中起到了非常重要的作用&#xff0c;它可以根据不同的条件来生成不同的代码&#xff0c;从而实现更加灵活和高效的代码生成。 条件编译的作用主要有以下几…

kotlin中的初始化问题纪录

1. init 代码块的顺序问题 init代码块和成员变量实质上是按先后顺序执行的。若果init{} 中有成员变量使用。要把成员变量放到代码块之前。 2. init代码块之中的函数问题 下面是一段错误的代码&#xff1a; class mkotlin{val info:Stringinit {getInfoMethod()info "adad…

BGP路由反射-数据中心IDC项目经验

一、背景描述 R1,R2,R3在AS200区域内&#xff0c;R1和R2,R1和R3建立OSPF&#xff0c;宣告接口互联. AS200区域内&#xff0c;R1和R2建立IBGP, R1和R3建立IBGP R2和R4建立EBGP, R3和R5建立EBGP。 网络拓扑&#xff1a; 二、故障现象 R1和R2可以收到来自AS100区域R4的E…

nsenter比docker exec更底层的命令

文章目录 nsenter介绍安装方法简单使用 nsenter介绍 nsenter命令是一个可以在指定进程的命令空间下运行指定程序的命令。它位于util-linux包中。典型的用途就是进入容器的网络命令空间。相当多的容器为了轻量级&#xff0c;是不包含较为基础的命令的&#xff0c;比如说ip addr…

系统移植,GNU命令,Uboot移植

一.GNU命令 1、addr2line 把程序地址转换为文件名和行号 做调试 2、ar 建立&#xff0c;修改&#xff0c;提取归档文件 3、Id:GNU arm-none-linux-gnueabi-ld start.o main.o -Tmap.lds -o uart.elf 链接器 4、as 主要用来编译GNU编译器gcc输出的汇编文件&a…

‘HEAD‘ 是 HTTP 请求的一种方法

一、名词解释 ‘HEAD’ 是 HTTP 请求的一种方法&#xff0c;它与 ‘GET’ 方法类似&#xff0c;但有一些关键区别。 当你使用 ‘GET’ 请求时&#xff0c;服务器会返回请求的资源&#xff08;例如 HTML 页面或文件内容&#xff09;。而当你使用 ‘HEAD’ 请求时&#xff0c;服务…

嵌入式-stm32-江科大-EXTI外部中断

一&#xff1a;EXTI外部中断&#xff08;external interrupt&#xff09; 1.1 STM32 中断系统 中断是指在主程序运行过程中&#xff0c;出现了特定的中断触发条件&#xff08;中断源&#xff09;&#xff0c;使得CPU暂停当前的程序&#xff0c;转而去处理中断程序&#xff0c;…

【Rust】第六节:结构体

0 前言 结构体&#xff0c;struct&#xff0c;听到这个名字大家可能会感觉“哇&#xff01;好熟悉&#xff01;”&#xff0c;毕竟在大学时学习c/cpp的时候已经接触过很多次了&#xff0c;实际上也确实很类似&#xff0c;即使有些不同&#xff0c;比如“所有权系统”&#xff…