一线城市打工人的大龄焦虑:都市容不下躯壳,老家容不下灵魂(含华为 OD 面试原题)

news2025/1/9 2:25:00

互联网的大龄焦虑

今天看到一个老生常谈的话题「大龄焦虑:都市容不下躯壳,老家容不下灵魂」

现如今,内卷已不是互联网行业专属名称,早已渗透到一线城市中的各行各业。

但地域落差对职业的影响,互联网行业还是稳稳的位于第一梯队。

一些出生在相对落后省份的同学,回老家意味着失业换行。

某些城镇可能根本没有匹配程序员的岗位,而在一线城市,程序员又是碗"青春饭"。

近两年的毕业生人生屡创新高,不少同学是因为当时选专业的时候,未能突破原生家庭及周边环境的信息差,单纯因为听说「计算机行业工资高」选中当前专业。

入行了才知道「35 岁无人要」等黑话,于是转念一想,又从新把希望寄托于「像前几年毕业的小伙伴那样,在一线城市卷几年,等到年纪大的时候也就存够钱,到时再回老家」这样的计划。

但随着这几年互联网的急转直下,再结合一线城市房租的稳步上升,计划又一次败给了现实变化。

一位网友说出了自己的情况:

alt

这位就职于「字节跳动」的同学已年到 30,存款 150W,伴侣存款不多,双方也都是普通家庭,对前途感到十分迷茫。

150W,如果是想在一线城市买房,再凑凑或许能在较远地区交个首付,但月供会成为大问题,贷款年限可能远比职业生涯要长 ...

150W,如果是回老家,肯定不是一笔小钱,但也不足以完全躺平 ...

这可是字节跳动,宇宙厂尚且如此。

alt

其他年龄更大的,或待遇更低的一线互联网从业者更是没有破局之路。

alt

...

回归主线。

来一道最近网友们问得最多的,华为 OD 一面算法原题,题面略有修改(本题面剔除掉了故事背景,更裸),解法和代码完全一致。

现在华为 OD 都考 Hard 了,也是够卷的。

题目描述

平台:LeetCode

题号:891

一个序列的「宽度」定义为该序列中最大元素和最小元素的差值。

给你一个整数数组 nums,返回 nums 的所有非空子序列的宽度之和。

由于答案可能非常大,请返回对 取余后的结果。

子序列定义为从一个数组里删除一些(或者不删除)元素,但不改变剩下元素的顺序得到的数组。

例如,[3,6,2,7] 就是数组 [0,3,1,6,2,2,7] 的一个子序列。

示例 1:

输入:nums = [2,1,3]

输出:6

解释:子序列为 [1], [2], [3], [2,1], [2,3], [1,3], [2,1,3] 。
相应的宽度是 0, 0, 0, 1, 1, 2, 2 。
宽度之和是 6 。

示例 2:

输入:nums = [2]

输出:0

提示:

数学

提示一:每个子序列对答案的贡献

对于某个子序列而言,若其最大值为 ,最小值为 ,则该子序列对答案的贡献为

我们有若干个子序列,即有若干个 ,答案为所有 之和,我们称一个 item

提示二:每个 参与了多少个 item 的组成,在最终展开式中又是如何

对于每个 而言,ab 均必然是具体的

同时易知若 作为了 个子序列的最小值,那么在最终表达式展开中,必然有 ;同理若 作为了 个子序列的最大值,那么在最终表达式展开中,必然有

提示三:统计每个 作为最值时,有多少个子序列

先不考虑 的重复问题。

作为子序列最小值时,首先 必选,小于 的必不选,而大于 的可选可不选,组合个数取决于大于 的数的个数,假设有 个,那么根据组合数原理,共有 个组合,即共有 个子序列。此时 对答案的贡献为

同理, 作为子序列最大值时,子序列个数取决于小于 的数的个数,假设有 个,此时 对答案的贡献为

提示四:如何快速得知比 大/小 的数的个数

排序。

提示五: 的重复问题

无论是将 视作最大值还是最小值,我们的组合数均取决于某一侧的数的个数,因此不会答案正确性产生影响。

提示六: 操作的重复计算问题

视作最值,我们都需要统计两边数所产生的组合数个数,因此即使对于单个用例都会面临重复计算某个 的问题(对称性)。

同时对于跨样例而言,我们仍会重复计算某些 (尤其是较小的 值),为避免重复计算,我们可以通过打表预处理的方式算得所有可能要用到 结果,在使用的时候直接通过查表取得。

Java 代码:

class Solution {
    static int N = 100010, MOD = (int)1e9+7;
    static long[] p = new long[N];
    static {
        p[0] = 1
        for (int i = 1; i < N; i++) p[i] = p[i - 1] * 2 % MOD;
    }
    public int sumSubseqWidths(int[] nums) {
        int n = nums.length;
        long ans = 0;
        Arrays.sort(nums);
        for (int i = 0; i < n; i++) {
            ans += (p[i] * nums[i]) % MOD;
            ans %= MOD;
            ans -= (p[n - i - 1] * nums[i]) % MOD;
            ans %= MOD;
        }
        return (int) ans;
    }
}

TypeScript 代码:

function sumSubseqWidths(nums: number[]): number {
    let n = nums.length, mod = 1000000007, ans = 0
    const p = new Array<number>(n + 10).fill(1)
    for (let i = 1; i <= n; i++) p[i] = p[i - 1] * 2 % mod
    nums.sort((a,b)=>a-b)
    for (let i = 0; i < n; i++) {
        ans += p[i] * nums[i] % mod
        ans %= mod
        ans -= p[n - i - 1] * nums[i] % mod
        ans %= mod
    }
    return ans
}

Python3 代码:

class Solution:
    def sumSubseqWidths(self, nums: List[int]) -> int:
        n, mod, ans = len(nums), 10000000070
        p = [1] * (n + 10)
        for i in range(1, n + 1):
            p[i] = p[i - 1] * 2 % mod
        nums.sort()
        for i in range(n):
            ans = ans + p[i] * nums[i] % mod
            ans = ans - p[n - i - 1] * nums[i] % mod
        return ans % mod
  • 时间复杂度:排序复杂度为 ;统计答案复杂度为 。整体复杂度为
  • 空间复杂度:

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

欢迎关注,明天见。

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

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

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

相关文章

关于YOLOv5训练结果results.txt绘制对比图

目录 用两个results.txt在一幅图中画2条对比曲线 用一个results.txt在一幅图中画多条对比曲线&#xff1a; 用两个results.txt在一幅图中画2条对比曲线 # -*- coding:utf-8 -*- import matplotlib.pyplot as plt import numpy as npcolumn [epoch, train_GIOU_loss, train_o…

美国CFTC启用举报奖励机制!打击人工智能投资欺诈行为

最近几周&#xff0c;美国监管机构对欺诈者利用人工智能 (AI) 的说法来引诱投资者实施诈骗发出警告。掌握人工智能诈骗原始信息的个人可以匿名举报 &#xff0c;并有资格根据商品期货交易委员会 (CFTC) 和证券交易委员会 (SEC) 举报计划获得金钱奖励。CFTC 关于人工智能诈骗的咨…

Docker部署Halo容器并结合内网穿透实现公网访问本地个人博客

文章目录 1. Docker部署Halo1.1 检查Docker版本如果未安装Docker可参考已安装Docker步骤&#xff1a;1.2 在Docker中部署Halo 2. Linux安装Cpolar2.1 打开服务器防火墙2.2 安装cpolar内网穿透 3. 配置Halo个人博客公网地址4. 固定Halo公网地址 本文主要介绍如何在CentOS 7系统使…

迷你世界制作甜甜圈

local R,r20,5--中心半径(内径与外径和的1/4)、扩充半径(高的一半) local x0,y0,z00,20,0--起点坐标 local d10000--单次遍历方块数 local id600--方块id local s,all,t-1,0,0--步骤、总方块数、循环 local demath.random(2,18)/2 local x,y,z0,0,0--当前坐标 local func…

毕业神刊!1区、CCF推荐SCI,最新26天录用!6天见刊

一手刊源 • 毕业快刊 春节一过&#xff0c;距离2024年上半年毕业的日子近在眼前&#xff0c;你的毕业论文已安排投稿了吗&#xff1f;时间着急的作者&#xff0c;不妨重点关注本期小编推荐的毕业快刊&#xff1a;无中科院预警记录&#xff0c;非三大出版社&#xff0c;指标情…

还在为选择办公软件而烦恼吗?不妨试试ONLYofficeV8.0

目录 一.优势一DOC 1.丰富的文字处理功能 2.按用户既定的规则编辑 3.使用AI助手 4.保持创意 5.深入分析文本 6.改善团队工作流程 7.轻松对比文档 8.扩展编辑功能 二.优势二sheet 1.数据分析 2.轻松实现精准计算 3.轻松分析数据 4.可视化呈现数据 5.增强团队协作…

通过盲注脚本复习sqllabs第46关 order by 注入

Less-46 从本关开始&#xff0c;我们开始学习 order by 相关注入的知识。本关的 sql 语句为$sql "SELECT * FROM users ORDER BY $id";尝试?sort1 desc或者 asc&#xff0c;显示结果不同&#xff0c;则表明可以注入。(升序 or 降序排列)从上述的 sql 语句中我们可以…

Netty-初体验

Netty 引入依赖服务端服务端处理读写业务的Handler客户端实现客户端handler Netty具备设计优雅、使⽤⽅便、性能强劲等优点&#xff0c; 引入依赖 <dependency><groupId>io.netty</groupId><artifactId>netty-all</artifactId><version>…

CVE-2024-0918 TEW-800MB RCE漏洞分析

漏洞描述 固件版本为1.0.1.0的TEW-800MB路由器存在命令注入漏洞。如果攻击者获得了web管理权限&#xff0c;他们可以将命令注入到httpd未知函数中的post请求参数DeviceURL中&#xff0c;从而获得shell权限。。 参考链接 TEW-800MB (notion.site)https://warp-desk-89d.notio…

盘点那些世界名校计算机专业采用的教材

清华、北大、MIT、CMU、斯坦福的学霸们在新学期里要学什么&#xff1f;今天我们来盘点一下那些世界名校计算机专业采用的教材。 书单目录 1.《深入理解计算机系统》&#xff08;原书第3版&#xff09;2. 《算法导论》&#xff08;原书第3版&#xff09;3. 《计算机程序的构造和…

【已解决】Zip压缩文件设置了密码怎么办?

Zip是一种常见的压缩格式文件&#xff0c;文件还可以设置密码保护。那设置了密码的Zip文件要如何打开呢&#xff1f;不清楚的小伙伴一起来看看吧。 想要打开带密码的Zip文件&#xff0c;我们需要用到适用于Zip格式的解压缩软件&#xff0c;比如WinRAR或者7-Zip软件都是可以的。…

【数据结构】_队列

目录 1.概念 2.队列的使用 3.队列模拟实现 4.循环队列 5.双端队列 6.栈与队列的互相实现 6.1 用队列实现栈 6.2 用栈实现队列 1.概念 &#xff08;1&#xff09;队列是只允许在一端进行插入数据操作&#xff0c;在另一端进行删除数据操作的特殊线性表&#xff1b; &am…

PyTorch深度学习实战(37)——CycleGAN详解与实现

PyTorch深度学习实战&#xff08;37&#xff09;——CycleGAN详解与实现 0. 前言1. CycleGAN 基本原理2. CycleGAN 模型分析3. 实现 CycleGAN小结系列链接 0. 前言 CycleGAN 是一种用于图像转换的生成对抗网络(Generative Adversarial Network, GAN)&#xff0c;可以在不需要配…

分布式事务-CAP定理+BASE理论+解决方案(两阶段提交+TCC事务)

事务就是指一个操作单元&#xff0c;操作单元中的所有操作要么同时成功要么同时失败。单体项目中的事务一般都是使用数据库提供的事务机制来完成的&#xff0c;但是分布式事务的事务参与者位于不同的节点上&#xff0c;也就是分布在不同的服务器上。分布式事务的最大问题就是各…

安卓游戏开发之音频技术优劣分析

一、引言 在安卓游戏开发中&#xff0c;音频处理技术扮演着至关重要的角色&#xff0c;它不仅能够增强游戏的沉浸感和玩家体验&#xff0c;还能通过声音效果传达关键的游戏信息。以下将对几种常见的安卓游戏音频处理技术进行优劣分析&#xff0c;并结合应用场景来阐述其特点。 …

Jmeter之内置函数__property和__P的区别

1. __property函数 作用 读取 Jmeter 属性 语法格式 ${__property(key,var,default)} 参数讲解 小栗子 ${__property(key)} 读取 key 属性如果找不到 key 属性&#xff0c;则返回 key&#xff08;属性名&#xff09; ${__property(key,,default)} 读取 key 属性如果找不到 k…

Linux内核中并发与竞争的处理方法之原子操作简介

一. 简介 当我们发现驱动程序中存在并发和竞争的时候一定要处理掉&#xff0c;接下来我们依次来学习一下 Linux 内核提供的几种并发和竞争的处理方法。 本文学习Linux内核提供的一种处理并发与竞争的方法&#xff1a;原子操作。 二. 原子操作简介 原子操作就是指不能再进一步…

【旧文更新】基于STM32L496的低功耗ADXL345加速度读取、TMP75温度检测

【旧文更新】基于STM32L496的低功耗ADXL345加速度读取、TMP75温度检测 文章目录 关于旧文新发加速度和温度检测附录&#xff1a;Cortex-M架构的SysTick系统定时器精准延时和MCU位带操作SysTick系统定时器精准延时延时函数阻塞延时非阻塞延时 位带操作位带代码位带宏定义总线函…

抖音小店怎么做起来?分享几种起店方式,新手商家认真选择!

大家好&#xff0c;我是电商糖果 网上关于抖音小店的起店方式有很多&#xff0c;有人说这种模式利润高&#xff0c;有人说这种模式长久。 东听一句&#xff0c;西听一句&#xff0c;让很多朋友感到比较迷茫。 根本不知道哪种方式更适合自己。 这里糖果就把网上最常见的五种…

线性代数:线性方程组解的结构

目录 齐次/非齐次方程组的解 Ax 0 的解的性质 定理 Ax b 的解的性质 相关证明 例1 例2 例3 齐次/非齐次方程组的解 Ax 0 的解的性质 定理 Ax b 的解的性质 相关证明 例1 例2 例3