大家好,我是苍何。
之前发了神仙公司名单深圳篇、重庆篇、成都篇、北京篇,武汉篇,长沙篇,广州篇,西安篇,感受到了大家浓浓的热情,也一度让我明白了一句至理名言:越是稀有,越是弥足珍贵。
这个系列很久没发啦,上一篇神仙公司名单(西安)留言区呼声最高的是上海,刚好苍何有去过上海,也有不少同学朋友在上海,其实这个系列的每一期,都有很多读者留言呼吁赶紧出上海神仙公司。
不愧是魔都,上海的打工人也是超级多,那今天我们就来看一看上海都有哪些神仙公司吧。
神仙公司民间说法是指的那些不加班,工资高,福利好的公司,于个人可能就是钱多、事少、离家近。神仙公司在民间我们通常指能做到 WLB(工作生活平衡,不加班) 的公司。
老规矩,放名单前,先来看看上海这座美丽的城市。
我只去过一次上海,对上海的了解,更多的仅限于互联网和教科书。但丝毫不妨碍我对这座城市的了解。这里是中国的经济中心,这里拥有全球闻名的金融区——陆家嘴。
我路过陆家嘴,感觉这地方除了富的流油,也没什么大不了的,看不到顶的楼房,艳丽的街区,这里聚集了人间很多的小美好,却唯独不适合穷人。
上海的外滩能看到很多西方建筑,想象不到,当年各国的租界,现在成了著名的景点,不过在这里,打个卡,是需要一些与人磨肩的勇气的,因为人太多啦。
上海有很多知名的大学,复旦大学、上海交大、同济、华东师范等,有同学去了复旦大学,现在混的相当好,据说都在上海买了一套房子了。
上海很好,每年都吸引了超级多毕业生,但来的人多,走的人也不少,我的发小老余就是那个逃离的人,去了苏州,幸福指数没降,反而人更松弛了。
这座城市有哪些不加班,WLB 公司呢?好啦,下面我们进入上海神仙公司名单。
图片看不清?文字再来一遍:
1、微软
全薪年假 15 天,全薪病假 15 天,28 周产假,6 周陪产假,6 周领养假,4 周家人看护假,有沙发休息区和睡眠舱,可居家办公,没有加班文化,每年都有 family day。
2、泰格医药
六险一金,通讯补贴,各种节日福利,没有上下级关系,成长空间大。加班少,有时间关注生活。
3、高通
弹性工作制,可远程办公,WLB,入职 15 天年假+30 天病假。公司重视多元化和性别平等,为女性员工组织了女性领导力论坛、ID 领导力论坛等一系列活动。
4、PVH
法定节假日不用补班,连周末一起休,年假有 12-20 天不等。假期多,每周有一天可申请居家上班,每月有一天带薪病假,每月有一天固定居家办公日,生日月有一天生日假,基本不加班,WLB。
5、eBay
公司提供早餐、下午茶和水果。不加班,公司氛围很好,每年有 2 次团建,非常重视员工生活和工作的平衡,不鼓励加班。
6、招商银行信用卡中心
上班时间上午08:30 - 下午06:00,福利到位,五险一金,定期体检,生日福利,部分部门加班少。
7、AMD
芯片公司,上班灵活不打卡,不加班,13 薪,下午茶,每月餐补,补充公积金,偶尔可居家办公,每周可远程办公 2 天。
8、Afterpay 澳福派信息
金融待遇对标大厂,外企,12 薪,年终奖,股票,健身、眼镜、牙齿报销额度 7000 元,通讯费每月 200 元报销。WLB 好。
9、LeetCode
弹性工作制,强调工作与生活的平衡,倡导不加班的工作文化,公司为员工提供电动升降桌,人体工学椅,双 2 K 显示器,技术氛围浓厚,成长空间大。
好啦,关于上海的神仙公司,你有什么补充的呢?欢迎评论区讨论。
...
回归主题。
今天来一道某上海神仙公司开发考过的面试算法题,给枯燥的牛马生活加加油😂。
题目描述
平台:LeetCode
题号:66
题目名称:加一
题目内容:
给定一个由整数组成的非空数组 digits
,表示一个非负整数,在该数的基础上加一。
数组中每个元素只存储单个数字,最高位数字存放在数组的首位。
可以假设整数不包含前导零,除了数字 0 本身。
示例 1:
输入:digits = [1,2,3]
输出:[1,2,4]
解释:输入数组表示数字 123。
示例 2:
输入:digits = [4,3,2,1]
输出:[4,3,2,2]
解释:输入数组表示数字 4321。
示例 3:
输入:digits = [9]
输出:[1,0]
解释:输入数组表示数字 9。加 1 得到 10,因此结果应该是 [1,0]
。
提示:
1 <= digits.length <= 100
0 <= digits[i] <= 9
解题思路
从数组的末尾开始遍历,模拟手动加法的进位操作:
如果当前位加 1 后小于 10,直接返回数组;
如果当前位加 1 等于 10,则将当前位置为 0,并继续处理前一位。
如果遍历完所有位后仍有进位,则在数组最前面插入 1(比如输入 [9,9,9]
)。
时间复杂度为 O(n),空间复杂度为 O(1)(除了结果数组)。
代码实现
Java代码
import java.util.Arrays;
public class PlusOne {
public int[] plusOne(int[] digits) {
for (int i = digits.length - 1; i >= 0; i--) {
digits[i]++;
if (digits[i] < 10) {
return digits; // 无需进位,直接返回结果
}
digits[i] = 0; // 发生进位,当前位清零
}
// 如果循环结束仍有进位,说明最高位需要加 1
int[] result = new int[digits.length + 1];
result[0] = 1;
return result;
}
public static void main(String[] args) {
PlusOne solution = new PlusOne();
System.out.println(Arrays.toString(solution.plusOne(new int[]{1, 2, 3}))); // [1, 2, 4]
System.out.println(Arrays.toString(solution.plusOne(new int[]{9, 9, 9}))); // [1, 0, 0, 0]
}
}
C++代码
#include <vector>
#include <iostream>
std::vector<int> plusOne(std::vector<int>& digits) {
for (int i = digits.size() - 1; i >= 0; i--) {
digits[i]++;
if (digits[i] < 10) {
return digits; // 无需进位,直接返回结果
}
digits[i] = 0; // 发生进位,当前位清零
}
// 如果循环结束仍有进位,说明最高位需要加 1
digits.insert(digits.begin(), 1);
return digits;
}
int main() {
std::vector<int> digits1 = {1, 2, 3};
std::vector<int> digits2 = {9, 9, 9};
std::vector<int> result1 = plusOne(digits1);
std::vector<int> result2 = plusOne(digits2);
for (int num : result1) std::cout << num << " "; // 输出:1 2 4
std::cout << std::endl;
for (int num : result2) std::cout << num << " "; // 输出:1 0 0 0
std::cout << std::endl;
}
Python代码
def plus_one(digits):
# 从后向前遍历数组
for i in range(len(digits) - 1, -1, -1):
digits[i] += 1
if digits[i] < 10:
return digits # 无需进位,直接返回结果
digits[i] = 0 # 发生进位,当前位清零
# 如果循环结束仍有进位,说明最高位需要加 1
return [1] + digits
# 测试代码
print(plus_one([1, 2, 3])) # 输出:[1, 2, 4]
print(plus_one([9, 9, 9])) # 输出:[1, 0, 0, 0]
复杂度分析
时间复杂度: O(n),其中 n 为数组的长度,因为需要遍历一次数组。
空间复杂度: O(1),除了结果数组外,没有额外的空间开销。
ending
你好呀,我是苍何。是一个每天都在给自家仙人掌讲哲学的执着青年,我活在世上,无非想要明白些道理,遇见些有趣的事。倘能如我所愿,我的一生就算成功。共勉 💪
点击关注下方账号,你将感受到一个朋克的灵魂,且每篇文章都有惊喜。
感谢大家一直以来的阅读、在看和转发,我会把流量主收益都用来发红包,大家可在公众号页面发送相关暗号关键词获取抽奖,每一篇文章会给到一个不同的暗号,对应的抽奖都是独立的,此篇暗号为【上海】,在后台回复【上海】,即可点击进去参与抽奖!抽奖内容、金额、个数等都无变化,在开奖前参与抽奖,操作均有效。
注意,后台(不是评论区,是后台)回复【上海】即可参与抽奖。
后台回复(不是评论区,是后台)即可参与抽奖。
后台回复(不是评论区,是后台)即可参与抽奖。
就像大家之前回复【八股】一样。