神仙公司名单(西安)

文摘   2024-11-17 14:08   湖北  
这是苍何的第 231 篇原创!

大家好,我是苍何。

之前发了神仙公司名单(深圳篇重庆篇成都篇北京篇武汉篇长沙篇广州篇杭州篇),感受到了大家浓浓的热情,也一度让我明白了一句至理名言:越是稀有,越是弥足珍贵

趁着周末,继续肝这个系列。上一篇神仙公司名单(杭州)留言区呼声最高的是西安。

之前的每一篇中都有读者留言安排西安,讲真,不是苍何不想早点安排,实在是比较难找,外包之都可不是吹的。

今天我决定迎难而上,吐血做了整理,我们就来看一看西安都有哪些神仙公司吧。

神仙公司民间说法是指的那些不加班,工资高,福利好的公司,于个人可能就是钱多、事少、离家近。神仙公司在民间我们通常指能做到 WLB(工作生活平衡,不加班) 的公司。

老规矩,放名单前,先来看看西安这座城市。

稍微懂点历史的都知道,西安,是十三朝古都,这里见证了无数王朝的兴衰,留下了丰富的历史遗迹。

西安兵马俑,被誉为「世界第八大奇迹」,虽然没有亲自去一趟,但看着网上的视频,每个兵马俑的面部表情都各不相同,古人的精湛技艺真是强的可怕。

除了历史遗迹,作为吃货,肉夹馍、羊肉泡馍、凉皮在小吃街真是随处可见,就是不知道西安回民街的肉夹馍和我在外地吃的肉夹馍有何不同。

西安的互联网环境在当下并不算很好,他是中国外包之都,每年西安高校毕业生想留在西安,但不是谁都能去的华为那样的大厂,很多人被迫去了一线,因为很多人并不想干外包。

好啦,下面我们进入神仙公司名单

文字再来一遍:

1、中国图书进出口西安有限公司

六险二金、午餐补贴、一般情况 5 点下班,天气不好或节假日前一天可提前至 4 点下班。90 后偏多,稳定不内卷,薪资不高比较适合追求稳定的朋友。

2、西门子

弹性工作,加班少,能够平衡工作和家庭。五险一金,额外有企业年金和补充医疗,年假 15 天。有食堂,班车。对女性友好,有母婴室,育儿假,提供儿童保育设施或资源,支持家庭相关福利政策等,工会俱乐部活动很多,公司每年会组织一次旅行。

3、陕投集团

神仙国企,六险二金、带薪年休假、伙食餐补、通讯补贴、生日福利和健康体检等,每年有季度奖和年终奖,综合可达 15 薪,双休不卷,可以准点下班。

4、维塔士

游戏界的清流,双休不卷,五险一金、年终奖金、带薪年假、餐费补贴、弹性工作时间、年度旅游、子女福利等福利,不鼓励加班,工作强度较低,非常注重员工工作和生活的平衡。

5、Thoughworks

上下班不打卡,没有上下级关系,那女比例接近1:1,技术氛围浓厚,加班不多,社保公积金,福利待遇该有的一样不少,早9:30晚18:00,平均月薪在 12 k~45 k(需要特别注意,必须是正编才是此类待遇,外包不是)。

6、三星电子研究所

提供六险一金、商业保险(含子女)、餐费补贴、项目奖金、长期贡献奖、此外,公司还提供法定假期、公司福利年假、带薪奖励休假、年度体检、心理健康咨询、节日福利、弹性工时、班车接送、员工健身房等,最关键的是三星系列产品有专属折扣,而且有出国机会,在招岗位 15 k~39 k,13 薪;

7、创客云商

上午09:00 - 下午06:00,双休,五险一金,带薪年假,员工旅游,免费班车,免费化妆品,节日福利,团队聚餐等应有尽有,招聘明确表示不加班。

8、天和防务

高科技军工企业,年假、项目奖、工作餐、班车服务、免费体检、年终绩效奖金和过节礼品等,双休,工作时间为上午8:30至12:00,下午13:00至17:30,下班准时,上班轻松。

9、葡萄城

六险一金、餐饮补贴、员工旅游、定期体检,双休,弹性工作,工作人性化,能做到 WLB,在招岗位 10 k~20 k,13 薪;

好啦,以上就是坐标「西安」的神仙公司名单,,你有什么补充的呢?欢迎评论区讨论。

...

回归主题。

今天来一道西安某公司考过的一道面试算法题,给枯燥的牛马生活加加油😂。

题目描述

平台:LeetCode

题号:373

题目名称:查找和最小的 K 对数字

给定两个升序排列的整数数组 nums1nums2,以及一个整数 k。定义一对数值 (u, v),其中第一个元素来自 nums1,第二个元素来自 nums2

请找到和最小的 k 对数值 (u1, v1), (u2, v2), ..., (uk, vk)


示例

示例 1:

输入:
nums1 = [1,7,11]
nums2 = [2,4,6]
k = 3  

输出:
[[1,2],[1,4],[1,6]]

解释:
返回和最小的前 3 对数值:
[1,2], [1,4], [1,6]
[7,2], [7,4], [7,6], [11,2], [11,4], [11,6]


示例 2:

输入:
nums1 = [1,1,2]
nums2 = [1,2,3]
k = 2

输出:
[[1,1],[1,1]]

解释:
返回和最小的前 2 对数值:
[1,1], [1,1], [1,2], [1,2], [2,1], [2,2], [2,3]


提示:

  • 1 <= nums1.length, nums2.length <= 10^5

  • -10^9 <= nums1[i], nums2[i] <= 10^9

  • nums1nums2 均为 升序排列

  • 1 <= k <= 10^4

  • k <= nums1.length * nums2.length


解题思路

思路概述

我们需要在两个升序数组中找到和最小的前 k 对数值。直接生成所有可能的对并排序在时间复杂度上不可接受,因此可以利用最小堆来优化查找过程。具体步骤如下:

  1. 最小堆初始化

  • 每对 (nums1[i], nums2[0]) 的和是数组中最小的,可以优先将它们放入最小堆。

  • nums1 的前 min(k, len(nums1)) 个元素与 nums2[0] 组成的对 (nums1[i], nums2[0]) 放入堆中。

  • 维护最小堆

    • 每次从堆中取出最小和的对 (u, v),并将结果加入答案。

    • 然后将与当前对相关的新对 (u, nums2[j+1])(如果存在)加入堆,继续调整堆。

  • 结束条件

    • 当取出的对数达到 k 或堆为空时结束。

    时间复杂度分析

    • 最小堆的维护代价是 (O (\log k))。

    • 每次加入堆的对数不会超过 (k),总的时间复杂度为 (O (k \log k))。


    代码实现

    Java 实现

    import java.util.ArrayList;
    import java.util.List;
    import java.util.PriorityQueue;

    public class KSmallestPairs {
    public List<List<Integer>> kSmallestPairs(int[] nums1, int[] nums2, int k) {
    List<List<Integer>> result = new ArrayList<>();
    if (nums1 == null || nums2 == null || nums1.length == 0 || nums2.length == 0 || k <= 0) {
    return result;
    }

    // 最小堆,按每对的和排序
    PriorityQueue<int[]> minHeap = new PriorityQueue<>((a, b) -> nums1[a[0]] + nums2[a[1]] - nums1[b[0]] - nums2[b[1]]);

    // 初始化堆,将 nums1 的前 k 个元素与 nums2[0] 组合加入堆中
    for (int i = 0; i < Math.min(k, nums1.length); i++) {
    minHeap.offer(new int[] { i, 0 }); // 存储索引对
    }

    // 取出最小的 k 对
    while (!minHeap.isEmpty() && result.size() < k) {
    int[] cur = minHeap.poll();
    int i = cur[0], j = cur[1];
    List<Integer> pair = new ArrayList<>();
    pair.add(nums1[i]);
    pair.add(nums2[j]);
    result.add(pair);

    // 如果 nums2[j+1] 存在,将新对 (nums1[i], nums2[j+1]) 加入堆
    if (j + 1 < nums2.length) {
    minHeap.offer(new int[] { i, j + 1 });
    }
    }

    return result;
    }
    }

    C++实现

    #include <vector>
    #include <queue>
    using namespace std;

    class Solution {
    public:
    vector<vector<int>> kSmallestPairs(vector<int>& nums1, vector<int>& nums2, int k) {
    vector<vector<int>> result;
    if (nums1.empty() || nums2.empty() || k <= 0) return result;

    // 最小堆,按每对的和排序
    auto compare = [&](pair<int, int>& a, pair<int, int>& b) {
    return nums1[a.first] + nums2[a.second] > nums1[b.first] + nums2[b.second];
    };
    priority_queue<pair<int, int>, vector<pair<int, int>>, decltype(compare)> minHeap(compare);

    // 初始化堆,将 nums1 的前 k 个元素与 nums2[0] 组合加入堆中
    for (int i = 0; i < min(k, (int)nums1.size()); i++) {
    minHeap.emplace(i, 0);
    }

    // 取出最小的 k 对
    while (!minHeap.empty() && result.size() < k) {
    auto cur = minHeap.top();
    minHeap.pop();
    int i = cur.first, j = cur.second;
    result.push_back({nums1[i], nums2[j]});

    // 如果 nums2[j+1] 存在,将新对 (nums1[i], nums2[j+1]) 加入堆
    if (j + 1 < nums2.size()) {
    minHeap.emplace(i, j + 1);
    }
    }

    return result;
    }
    };

    Python 实现

    import heapq

    def kSmallestPairs(nums1, nums2, k):
    if not nums1 or not nums2 or k <= 0:
    return []

    # 最小堆
    min_heap = []
    # 初始化堆,将 nums1 的前 k 个元素与 nums2[0] 组合加入堆中
    for i in range(min(k, len(nums1))):
    heapq.heappush(min_heap, (nums1[i] + nums2[0], i, 0)) # 存储 (和, nums1索引, nums2索引)

    result = []
    # 取出最小的 k 对
    while min_heap and len(result) < k:
    _, i, j = heapq.heappop(min_heap)
    result.append([nums1[i], nums2[j]])

    # 如果 nums2[j+1] 存在,将新对 (nums1[i], nums2[j+1]) 加入堆
    if j + 1 < len(nums2):
    heapq.heappush(min_heap, (nums1[i] + nums2[j + 1], i, j + 1))

    return result

    复杂度分析

    • 时间复杂度:(O (k \log k)),堆操作的复杂度。

    • 空间复杂度:(O (k)),堆的大小。

    ending

    你好呀,我是苍何。是一个每天都在给自家仙人掌讲哲学的执着青年,我活在世上,无非想要明白些道理,遇见些有趣的事。倘能如我所愿,我的一生就算成功。共勉 💪

    点击关注下方账号,你将感受到一个朋克的灵魂,且每篇文章都有惊喜。

    感谢大家一直以来的阅读、在看和转发,我会把流量主收益都用来发红包,大家可在公众号页面发送相关暗号关键词获取抽奖,每一篇文章会给到一个不同的暗号,对应的抽奖都是独立的,此篇暗号为【西安】,在后台回复【西安】,即可点击进去参与抽奖!抽奖内容、金额、个数等都无变化,在开奖前参与抽奖,操作均有效。

    注意,后台(不是评论区,是后台)回复【西安】即可参与抽奖。
    后台回复(不是评论区,是后台)即可参与抽奖。
    后台回复(不是评论区,是后台)即可参与抽奖。

    就像大家之前回复【八股】一样。

    【我爱这个魔幻的世界】

    苍何
    独立开发者,专注于Java企业级开发,AI 工具提效。偶尔闪光、经常表达、总是真诚。
     最新文章