看到大厂工时爆料,我沉默了。。
大厂工时爆料
今天逛脉脉的时候,看到一篇名为「一人一句,大厂工时爆料」的帖子:

点开之后,我沉默了 ...
出来爆料的基本上都是 10+ 小时。

好奇心之下,我搜索了一下去年很热的排行榜:

好家伙,依然稳定。
如果是偶尔赶项目,加班一下能理解,去年周工作时长已经长达 60+ 小时,今年还被爆料日均 10+ 个小时,说明内卷已经成为日常了。
过去几年,各行各业都羡慕计算机行业,但大多围城外的人只看到巨额年终,而看不到超低时薪。
对此,你怎么看?欢迎新建「匿名身份」在评论区爆料你的工时(貌似还很多同学不知道公众号新出的这功能,有段时间了
...
回归主题。
来一道不算容易的,和「字节跳动(社招四面)」相关的题目。
题目描述
平台:LeetCode
题号:862
给你一个整数数组 nums
和一个整数 k
,找出 nums
中和至少为 k
的最短非空子数组,并返回该子数组的长度。
如果不存在这样的子数组,返回 -1
。
子数组是数组中连续的一部分。
示例 1:
输入:nums = [1], k = 1
输出:1
示例 2:
输入:nums = [1,2], k = 4
输出:-1
示例 3:
输入:nums = [2,-1,2], k = 3
输出:3
提示:
前缀和 + 离散化 + 权值树状数组
由于求解的对象是子数组,容易联想到求连续段之和,容易联想到「前缀和」,假设我们预处理出的前缀和数组为 sum
(为了方便,我们令前缀和数组坐标从 1
开始)。
即每个 而言,本质上是找满足「 」条件的最大下标 j
,其中 j
的取值范围为 ,从而知道以 i
作为右端点时,满足条件的最短子数组长度为 。
先考虑存在负数域的问题,由于我们需要使用 ,以及对应的 ,同时 k
的取值为 (过大),我们可以通过「离散化」手段将其映射到 2 倍的数组长度,即大小为 的正数域。
随后来考虑如何求解「满足条件的最大下标」问题,可以通过「权值树状数组」来做:对于每个 而言,我们利用「权值树状数组」来维护满足大于等于 的最大下标。起始我们先初始化树状数组为 -1
,遍历过程中,查询是否存在满足条件的下标(若不为 -1
则更新 ans
),并更新权值树状数组对应的最大下标即可。
Java 代码:
class Solution {
static int N = 200010;
static int[] tr = new int[N], sum = new int[N];
int n, m, ans;
int lowbit(int x) {
return x & -x;
}
void update(int val, int loc) {
for (int i = val; i < m; i += lowbit(i)) tr[i] = Math.max(tr[i], loc);
}
int query(int x) {
int ans = -1;
for (int i = x; i > 0; i -= lowbit(i)) ans = Math.max(ans, tr[i]);
return ans;
}
int getIdx(List<Long> list, long x) {
int l = 0, r = list.size() - 1;
while (l < r) {
int mid = l + r >> 1;
if (list.get(mid) >= x) r = mid;
else l = mid + 1;
}
return r + 1;
}
public int shortestSubarray(int[] nums, int k) {
n = nums.length; m = 2 * n + 10; ans = n + 10;
Arrays.fill(tr, -1);
long[] temp = new long[m];
List<Long> list = new ArrayList<>();
list.add(0L);
for (int i = 1; i <= 2 * n + 1; i++) {
if (i <= n) temp[i] = temp[i - 1] + nums[i - 1];
else temp[i] = temp[i - (n + 1)] + k;
list.add(temp[i]);
}
Collections.sort(list);
for (int i = 0; i <= 2 * n + 1; i++) sum[i] = getIdx(list, temp[i]);
update(sum[n + 1], 0);
for (int i = 1; i <= n; i++) {
int j = query(sum[i]);
if (j != -1) ans = Math.min(ans, i - j);
update(sum[n + 1 + i], i);
}
return ans == n + 10 ? -1 : ans;
}
}
C++ 代码:
class Solution {
public:
static const int N = 200010;
vector<int> tr, sum;
int n, m, ans;
int lowbit(int x) {
return x & -x;
}
void update(int val, int loc) {
for (int i = val; i < m; i += lowbit(i)) tr[i] = max(tr[i], loc);
}
int query(int x) {
int ans = -1;
for (int i = x; i > 0; i -= lowbit(i)) ans = max(ans, tr[i]);
return ans;
}
int shortestSubarray(vector<int>& nums, int k) {
n = nums.size(); m = 2 * n + 10; ans = n + 10;
tr.resize(m, -1); sum.resize(m + 10, 0);
vector<long long> temp(m);
vector<long long> list;
for (int i = 1; i <= 2 * n + 1; i++) {
if (i <= n) temp[i] = temp[i - 1] + nums[i - 1];
else temp[i] = temp[i - (n + 1)] + k;
list.push_back(temp[i]);
}
sort(list.begin(), list.end());
for (int i = 0; i <= 2 * n + 1; i++) {
sum[i] = lower_bound(list.begin(), list.end(), temp[i]) - list.begin() + 1;
}
update(sum[n + 1], 0);
for (int i = 1; i <= n; i++) {
int j = query(sum[i]);
if (j != -1) ans = min(ans, i - j);
update(sum[n + 1 + i], i);
}
return ans == n + 10 ? -1 : ans;
}
};
-
时间复杂度:预处理前缀和的的复杂度为 ,排序并进行离散化的复杂度为 ;构造答案的复杂度为 。整体复杂度为 -
空间复杂度:
最后
给大伙通知一下 📢 :
全网最低价 LeetCode 会员目前仍可用 ~
📅 年度:有效期加赠两个月!!; 季度:有效期加赠两周!!
🧧 年度:获 66.66!!; 季度:获 22.22!!
🎁 年度:参与当月丰厚专属实物抽奖(中奖率 > 30%)!!
专属链接:leetcode.cn/premium/?promoChannel=acoier
我是宫水三叶,每天都会分享算法知识,并和大家聊聊近期的所见所闻。
欢迎关注,明天见。
更多更全更热门的「笔试/面试」相关资料可访问排版精美的 合集新基地 🎉🎉
相关文章:

看到大厂工时爆料,我沉默了。。
大厂工时爆料 今天逛脉脉的时候,看到一篇名为「一人一句,大厂工时爆料」的帖子: 点开之后,我沉默了 ... 出来爆料的基本上都是 10 小时。 好奇心之下,我搜索了一下去年很热的排行榜: 2023 年最新互联网公司…...

最大回撤概念与计算
一、最大回撤,是指的最大下跌的值: 1、即所有下跌趋势中,净值最低的点,与历史净值最高点直接的差值。 2、最大回撤取绝对值显示 二、如果有时间限制,则计算对应时间段内的最大回撤。 示意图如下: 三、举…...

K8s Ingress 详解
文章目录 K8s Ingress 详解Ingress 资源清单Ingress 基于URL 实现路由Ingress 基于名称虚拟主机Ingress 实现HTTPS创建TLS 证书创建Secrets配置ingress Ingress RewriteIngress 灰度发布Ingress 配置认证 K8s Ingress 详解 Ingress 资源清单 apiVersion: networking.k8s.io/v…...
大模型的崛起与未来展望
人工智能技术的飞速发展,令人不得不感叹科技的进步究竟有多么惊人。近年来兴起的大模型,在多个领域都展现出了令人瞩目的能力,引发了业界和大众的广泛关注。从自然语言处理到计算机视觉,从医疗诊断到金融分析,大模型都在不断刷新人类的认知边界。 但我们同时也要看到,大模型目…...

让WSL内核使用BBR拥塞控制算法
使用git命令从Linux内核的Git仓库中获取源代码,$ git clone --depth 1 https://github.com/microsoft/WSL2-Linux-Kernel.git,找到对应的内核版本$ git log --grep="5.15.146.1-microsoft-standard-WSL2",回退到本机安装的内核版本$ git checkout <commit-id&…...

小程序内的分包与数据共享
一:数据共享 小程序内的数据共享和vue当中不一样,vue当中的vue实例可以使得所有的组件都能this.store 但是小程序它只有page对象,和组件实例对象.对于vue而言,vue实例可以使得添加的组件都有. 但是page对象页面对象,不能使得页面内部有.只能使得这个页面内能访问.vue实例,会…...

WordPress子比主题美化-首页动态的图片展示
WordPress子比主题首页动态的图片展示 WordPress子比主题首页添加动态的图片展示,其他程序也可以用,复制代码到相应位置即可,也可作为指定分类,重点内容等,可以适合各个场景,需要的自取。 图片展示: 教程…...

jsp实验19 File
三、源代码以及执行结果截图: readJSPFile.jsp <% page contentType"text/html" %> <% page pageEncoding "utf-8" %> <% page import"java.io.*"%> <style> #tom{ font-family:宋体;font-size:2…...

【OpenVINO™】在C#中使用 OpenVINO™ 部署 YOLOv10 模型实现目标
文章目录 1. 前言1.1 OpenVINO™ C# API1.2 YOLOv10 2. 模型获取2.1 源码下载2.2 配置环境2.3 下载模型 3. Yolov10 项目配置3.1 项目创建与环境配置3.2 定义模型预测方法3.2.1 定义目标检测模型方法3.2.2 使用OpenVINO™ 预处理接口编译模型 3.2 模型预测方法调用 4. 项目运行…...
RabbitMQ 如何保证消息不丢失
开启消息确认机制: 在发布消息时,可以设置deliveryMode为2(持久化),以确保消息不会因为RabbitMQ的崩溃而丢失。 使队列持久化: 通过设置durable为true,可以确保队列在RabbitMQ重启后依然存在。…...

【技术突破】合合信息新品震动业界,TextIn智能抽取,是不是藏了黑科技?
官.网地址:合合TextIn - 合合信息旗下OCR云服务产品 随着文本数据关系的日益复杂化,传统的信息抽取技术面临着诸多挑战。深度学习模型的训练往往需要大量的高质量标注的训练样本,依赖规则实现上下文对话,新样本如果变换了行文方式…...

Transformer模型学习(1)
Transformer模型,它自2017年被引入以来,已成为处理语言任务的主流技术。Transformer模型不仅在多个语言处理任务上取得了优异的成绩,而且还因为它的设计极大地推动了后续模型的发展,如今广泛应用于聊天机器人、翻译软件和文本生成…...

TinTinLand Web3 + AI 共学月|五周上手,捕获浪潮碰撞下的无限机遇
近期,斯坦福大学人文x人工智能研究所(Stanford HAI)发布了《2024 年人工智能指数报告》(Artificial Intelligence Index Report 2024),指出当前人工智能的发展已全面改变社会的前沿风向,其中据 …...

渗透课程第二阶段--Part1--信息收集
目录 一. 为什么要做信息收集? 渗透测试的流程 信息收集包括的内容 学习框架: 二. 分类 1. 域名相关信息 域名(Domain Name)是什么 域名的分类 域名联系人信息 子域名信息 域名DNS信息 2. IP相关信息 ping/nslookup …...
ubuntu22 搭建nginx高可用集群(VIP(keepalived) + 负载均衡)
#在所有节点安装nginx #ps: 如果要使用tcp流转发:需用二进制包安装 make编译时加入stream流的参数。 推荐直接安装openresty【默认支持stream等nginx模块,还附带了很多常用的lua库】 apt install -y net-tools sudo apt install -y nginx vim /etc/…...

QT 编译Lua 动态库,使用Lua脚本混合编程
一,编译Lua动态库 1,下载lua源码 地址:Lua: downloadhttps://www.lua.org/download.html 2,配置 解压lua源码压缩包,里面有个src文件夹,里面的代码就是lua的源码...
关于不均衡数据的探究
1、不均衡数据指什么 不均衡数据是指在一个数据集中,某些类别(或标签)的样本数量明显少于其他类别的样本数量,也就是说不同类别的样本分布不均匀。这样的数据集在分类问题中非常常见。 2、不均衡数据的特征 类别比例失衡…...

LwIP 之十 详解 TCP RAW 编程、示例、API 源码、数据流
我们最为熟知的网络通信程序接口应该是 Socket。LwIP 自然也提供了 Socket 编程接口,不过,LwIP 的 Socket 编程接口都是使用最底层的接口来实现的。我们这里要学习的 TCP RAW 编程则是指的直接使用 LwIP 的最底层 TCP 接口来直接实现应用层功能。这里先来一张图,对 LwIP 内部…...

【京东评论】数据源——Python提升获取效率▼
这不是我的第一个爬虫,但大多数都是像这样简单粗暴的,因为一开始对于定义函数,然后再相应 相应的操作,是比较困难的,这能直接写for循环语句。 首先,我们要明确我们的目标:从京东上爬取产品的评…...

Java大厂面试题第2季
一、本课程前提要求和说明 面试题1: 面试题2: 面试题3: 面试题4: 面试题5: 高频最多的常见笔试面试题目 ArrayList HashMap 底层是什么东东 JVM/GC 多线程与高并发 java集合类...
KubeSphere 容器平台高可用:环境搭建与可视化操作指南
Linux_k8s篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:KubeSphere 容器平台高可用:环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...
MySQL用户和授权
开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务: test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...

JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

Razor编程中@Html的方法使用大全
文章目录 1. 基础HTML辅助方法1.1 Html.ActionLink()1.2 Html.RouteLink()1.3 Html.Display() / Html.DisplayFor()1.4 Html.Editor() / Html.EditorFor()1.5 Html.Label() / Html.LabelFor()1.6 Html.TextBox() / Html.TextBoxFor() 2. 表单相关辅助方法2.1 Html.BeginForm() …...

LabVIEW双光子成像系统技术
双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制,展现出显著的技术优势: 深层组织穿透能力:适用于活体组织深度成像 高分辨率观测性能:满足微观结构的精细研究需求 低光毒性特点:减少对样本的损伤…...
redis和redission的区别
Redis 和 Redisson 是两个密切相关但又本质不同的技术,它们扮演着完全不同的角色: Redis: 内存数据库/数据结构存储 本质: 它是一个开源的、高性能的、基于内存的 键值存储数据库。它也可以将数据持久化到磁盘。 核心功能: 提供丰…...