神仙公司名单(苏州)

news2025/1/25 4:27:39

神仙公司(苏州)

前几天虽辟谣了 苏州佳能 N+12/2N+12 的裁员赔偿,但也同时指出了苏州是外企偏多,就业环境和生活节奏平衡的好城市。

但提到苏州公司,大家第一印象是微软、思科 和 Zoom 此类以 WLB 闻名的明星企业。

确实,如果你在国内大厂待得比较久,那么此类公司可以一句话总结:不是你想象中的舒服,是你想象不到的舒服。

但除这些明星企业以外,苏州还有不少“相对小众”的神仙公司,今天就来跟大家分享一下:

  • 松下:除常规假期以外,还有「育儿假」和「家庭抚养假」,15 薪 + 绩效 + 年终奖
  • 科思创:公司文化倡导 WLB(工作与生活平衡),每年普涨,15 天年假,逢年过节有礼物,有生育津贴和购房补贴,公司有专门的母婴室和女性休息室,14 薪 + 年终奖
  • 恩智浦:弹性办公,965,有班车、租房补贴、健身房、学费报销和医疗保险,13 薪 + 绩效 + 期权
  • 博世:965,节日礼物,15 天年假 + 10 天带薪病假,每年外出旅行一次,全额缴纳五险一金(额外给员工购买商业险),公积金比例 12%,13 薪 + 高额奖金

以上都是坐标苏州,有计算机相关在招岗位的企业,大家有兴趣可以留意一下。

...

回归主题。

周末了,来一道不难的算法题。

题目描述

平台:LeetCode

题号:199

给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。

示例 1: alt

输入: [1,2,3,null,5,null,4]

输出: [1,3,4]

示例 2:

输入: [1,null,3]

输出: [1,3]

示例 3:

输入: []

输出: []

提示:

  • 二叉树的节点个数的范围是

BFS

本质就是找层序遍历过程中,每层的最后一个节点。

Java 代码:

class Solution {
    public List<Integer> rightSideView(TreeNode root) {
        List<Integer> ans = new ArrayList<>();
        if (root == nullreturn ans;
        Deque<TreeNode> d = new ArrayDeque<>();
        d.addLast(root);
        while (!d.isEmpty()) {
            int sz = d.size();
            while (sz-- > 0) {
                TreeNode node = d.pollFirst();
                if (node.left != null) d.addLast(node.left);
                if (node.right != null) d.addLast(node.right);
                if (sz == 0) ans.add(node.val);
            }
        }
        return ans;
    }
}

C++ 代码:

class Solution {
public:
    vector<intrightSideView(TreeNode* root) {
        vector<int> ans;
        if (!root) return ans;
        queue<TreeNode*> d;
        d.push(root);
        while (!d.empty()) {
            int sz = d.size();
            while (sz-- > 0) {
                TreeNode* node = d.front();
                d.pop();
                if (node->left) d.push(node->left);
                if (node->right) d.push(node->right);
                if (sz == 0) ans.push_back(node->val);
            }
        }
        return ans;
    }
};

Python 代码:

class Solution:
    def rightSideView(self, root: Optional[TreeNode]) -> List[int]:
        ans = []
        if not root:
            return ans
        d = deque()
        d.append(root)
        while d:
            sz = len(d)
            while sz > 0:
                node = d.popleft()
                if node.left:
                    d.append(node.left)
                if node.right:
                    d.append(node.right)
                if sz == 1:
                    ans.append(node.val)
                sz -= 1
        return ans

TypeScript 代码:

function rightSideView(root: TreeNode | null): number[] {
    const ans = [];
    if (!root) return ans;
    const d = [];
    d.push(root);
    while (d.length > 0) {
        let sz = d.length;
        while (sz-- > 0) {
            const node = d.shift()!;
            if (node.left) d.push(node.left);
            if (node.right) d.push(node.right);
            if (sz === 0) ans.push(node.val);
        }
    }
    return ans;
};
  • 时间复杂度:
  • 空间复杂度:

DFS

DFS 解法同理,规定好节点的遍历顺序(例如 中-右-左),并在 DFS 过程中传递当前层参数 level(根节点为第 0 层),同时使用一个 Set 数据结构记录处理过的层编号,从而实现只将当前层的首个节点添加到答案中。

Java 代码:

class Solution {
    List<Integer> ans = new ArrayList<>();
    Set<Integer> set = new HashSet<>();
    public List<Integer> rightSideView(TreeNode root) {
        dfs(root, 0);
        return ans;
    }
    void dfs(TreeNode node, int level) {
        if (node == nullreturn ;
        if (!set.contains(level)) {
            ans.add(node.val);
            set.add(level);
        }
        dfs(node.right, level + 1);
        dfs(node.left, level + 1);
    }
}

C++ 代码:

class Solution {
public:
    vector<int> ans;
    unordered_set<int> levels;
    vector<intrightSideView(TreeNode* root) {
        dfs(root, 0);
        return ans;
    }
    void dfs(TreeNode* node, int level) {
        if (!node) return;
        if (levels.find(level) == levels.end()) {
            ans.push_back(node->val);
            levels.insert(level);
        }
        dfs(node->right, level + 1);
        dfs(node->left, level + 1);
    }
};

Python 代码:

class Solution:
    def rightSideView(self, root: Optional[TreeNode]) -> List[int]:        
        def dfs(node, level):
            if not node:
                return
            if level not in levels:
                ans.append(node.val)
                levels.add(level)
            dfs(node.right, level + 1)
            dfs(node.left, level + 1)
        ans = []
        levels = set()
        dfs(root, 0)
        return ans

TypeScript 代码:

function rightSideView(root: TreeNode | null): number[] {
    const ans = [];
    const levels = new Set();
    function dfs(node: TreeNode | null, level: number{
        if (!node) return;
        if (!levels.has(level)) {
            ans.push(node.val);
            levels.add(level);
        }
        dfs(node.right, level + 1);
        dfs(node.left, level + 1);
    }
    dfs(root, 0);
    return ans;
};
  • 时间复杂度:
  • 空间复杂度:

最后

巨划算的 LeetCode 会员优惠通道目前仍可用 ~

使用福利优惠通道 leetcode.cn/premium/?promoChannel=acoier,年度会员 有效期额外增加两个月,季度会员 有效期额外增加两周,更有超大额专属 🧧 和实物 🎁 福利每月发放。

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

欢迎关注,明天见。

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

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

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

相关文章

阿里「轨迹可控版Sora」,告别「抽卡」,让视频生成更符合物理规律

目前&#xff0c;扩散模型能够生成多样化且高质量的图像或视频。此前&#xff0c;视频扩散模型采用 U-Net 架构 &#xff0c;主要侧重于合成有限时长&#xff08;通常约为两秒&#xff09;的视频&#xff0c;并且分辨率和纵横比受到固定限制。 Sora 的出现打破了这一限制&#…

【教学类-73-01】20240804镂空瓶子01

背景需求&#xff1a; 瓶子里的春天呀&#xff01; - 小红书 (xiaohongshu.com)https://www.xiaohongshu.com/explore/63ef87f8000000000703acae?app_platformandroid&ignoreEngagetrue&app_version8.47.0&share_from_user_hiddentrue&xsec_sourceapp_share&…

谷粒商城实战笔记-vagrant避坑指南

文章目录 一&#xff0c;虚拟机磁盘空间不足问题原因解决方案 二&#xff0c;虚拟机导致C盘空间不足 一&#xff0c;虚拟机磁盘空间不足 使用vagrant管理虚拟机的过程中遇到了一个问题&#xff0c;虚拟机安装完成后&#xff0c;很快磁盘dev/sda1就满了&#xff0c;40G的空间&a…

链表篇: 04-寻找两个链表的第一个公共结点

解题思路&#xff1a; 方案一&#xff1a;长度统计法 从题目中可以看到&#xff0c;两个链表有长度差&#xff0c;这里可以先让长度比较长的链表先把长度差走完&#xff0c;这里假设为 pHead1, 先让 pHead1 把长度差走完&#xff0c;之后让两个链表同时往后进行遍历&#xff…

01:【stm32】软件安装及stm32的简要介绍

软件安装及stm32的简要介绍 1、软件安装1.1、安装Keil5 MDK软件1.2、安装DFP1.3、安装ARMCC编译器1.4、安装ST-Link驱动1.5、程序下载 2、stm32的介绍 1、软件安装 1.1、安装Keil5 MDK软件 ①先在D盘新建一个名为Keil5的文件夹。然后在Keil5文件夹里面新建2个文件夹&#xff0…

Vue从入门到精通全网最强保姆级教程

Vue是什么&#xff1f;为什么要学习他 Vue是什么&#xff1f; Vue是前端优秀框架&#xff0c; 是一套用于构建用户界面的渐进式框架 为什么要学习Vue 1 Vue是目前前端最火的框架之一 2 Vue是目前企业技术栈中要求的知识点 3 Vue可以提升开发体验 4 Vue学习难度较低 5 ..…

使用GCC编译Notepad++的插件

Notepad的本体1是支持使用MSVC和GCC编译的2&#xff0c;但是Notepad插件的官方文档3里却只给出了MSVC的编译指南4。 网上也没有找到相关的讨论&#xff0c;所以我尝试在 Windows 上使用 MinGW&#xff0c;基于 GCC-8.1.0 的 posix-sjlj 线程版本5&#xff0c;研究一下怎么编译…

【Kubernetes】Deployment 的创建和使用(实战)

Deployment 的创建和使用 创建 deployment-demo.yaml 文件&#xff0c;并在其中输入以下内容&#xff1a; apiVersion: apps/v1 kind: Deployment metadata:name: deployment-demolabels:app: nginx spec:replicas: 3selector:matchLabels:app: nginxtemplate:metadata:labels…

Go语言加Vue3零基础入门全栈班15 gin+gorm+vue3用户管理系统实战录播课 2024年08月04日 课程笔记

预览 登录页面&#xff1a; 首页&#xff1a; 用户列表&#xff1a; 新增用户&#xff1a; 删除用户&#xff1a; 暗黑模式&#xff1a; 概述 如果您没有Golang的基础&#xff0c;应该学习如下前置课程。 01 Golang零基础入门课_20240726_149元02 Golang面向对象…

3.11.样式迁移

样式迁移 ​ 使用卷积神经网络&#xff0c;自动的将一个图像中的风格应用在另一图像之上&#xff0c;即样式迁移(style transfer) ​ 为了完成这一过程&#xff0c;我们需要两张输入图像&#xff1a;一张是内容图像&#xff0c;一张是风格图像&#xff0c;随后使用神经网络修…

【Nuxt】内置组件和全局样式使用

内置组件 Nuxt3框架也提供一些内置的组件&#xff0c;常用的如下&#xff1a; SEO组件&#xff1a;Html、Body、Head、Title、Meta、Style、Link、NoScript、BaseNuxtWelcome:欢迎页面组件&#xff0c;该组件是nuxt/ui的部分NuxtLayout:是Nuxt自带的页面布局组件NuxtPage:是N…

《Windows API每日一练》24.1 WinSock简介

本节将逐一介绍WinSock的主要特性和组件&#xff0c;套接字、WinSock动态库的使用。 本节必须掌握的知识点&#xff1a; Windows Socket接口简介 Windows Socket接口的使用 第178练&#xff1a;网络时间校验 24.1.1 Windows Socket接口简介 ■以下是WinSock的主要特性和组件…

Nginx代理(反向代理详解)

概述 正向代理&#xff1a; 正向代理通常用于客户端需要访问外部网络资源&#xff0c;但出于安全或策略考虑&#xff0c;客户端无法直接访问这些资源。正向代理服务器位于客户端和目标服务器之间&#xff0c;客户端通过代理服务器发送请求&#xff0c;代理服务器再将请求转发…

云原生应用程序简介

云原生应用程序简介 提示 该内容摘自电子书《为 Azure 构建云原生 .NET 应用程序》&#xff0c;可在**.NET Docs**上获取&#xff0c;也可以免费下载 PDF 并离线阅读。 另一天&#xff0c;在办公室研究“下一件大事”。 你的手机响了。这是友好的招聘人员打来的&#xff0c;他每…

备考2024年美国数学竞赛AMC10:吃透1250道历年真题和知识点(持续)

最近有家长问好真题网&#xff0c;有什么含金量比较高的初中生数学竞赛吗&#xff1f;美国数学竞赛AMC10是个不错的选择。根据近年的时间安排&#xff0c;距离2024年AMC10美国数学竞赛开赛预计还有2个多月的时间&#xff0c;实践证明&#xff0c;做真题&#xff0c;吃透真题和背…

[Python学习日记-2] Python的介绍与安装

[Python学习日记-2] Python的介绍与安装 Python的介绍和发展趋势 Python环境安装 开发你的第一个Python程序 Python的介绍和发展趋势 一、Python发展史 Python是一种高级编程语言&#xff0c;由Guido van Rossum&#xff08;龟叔&#xff0c;荷兰人&#xff09;于1989年圣诞…

Cursor搭配cmake实现C++程序的编译、运行和调试

Cursor搭配cmake实现C程序的编译、运行和调试 Cursor是一个开源的AI编程编辑器&#xff0c;开源地址https://github.com/getcursor/cursor &#xff0c;它其实是一个集成了Chat-GPT的VS Code。 关于VS Code和VS的对比可以参考这篇文章VS Code 和 Visual Studio 哪个更好&…

ASPCMS漏洞之文件上传漏洞

ASPCMS是由上⾕⽹络开发的全新内核的开源企业建站系统&#xff0c;能够胜任企业多种建站需求&#xff0c;并且 ⽀持模版⾃定义、⽀持扩展插件等等&#xff0c;能够在短时间内完成 企业建站。 步骤一&#xff1a;访问靶场 访问后台页面——登录后台——填写用户密码&#xff0…

混合密度网络Mixture Density Networks(MDN)

目录 简介1 介绍2 实现3 几个MDN的应用&#xff1a;参考 简介 平方和或交叉熵误差函数的最小化导致网络输出近似目标数据的条件平均值&#xff0c;以输入向量为条件。对于分类问题&#xff0c;只要选择合适的目标编码方案&#xff0c;这些平均值表示类隶属度的后验概率&#x…

记录一次单例模式乱用带来的危害。

项目场景&#xff1a; 我们在接受到短信网关下发的回执之后&#xff0c;需要将回执内容也下发给我们的下游服务。为了防止下游响应超时&#xff0c;我们需要将超时的信息存放到Redis中然后进行补发操作。 问题描述 在使用Redis进行数据存储的时候&#xff0c;报NPE问题。 原因…