全球十大独角兽(完整榜单),你猜中国占几席?

news2024/11/25 8:18:50

全球十大独角兽

10月3日,OpenAI 宣布已完成 66 亿美元融资,估值达 1570 亿美元,成为全球第三的独角兽。

给新来的读者重温一下"独角兽"的定义:估值超过10亿美元的未上市企业。

你可能会好奇,OpenAI 是第三,那前两位是谁?

「字节跳动」和「SpaceX」。

前者估值 2250 亿美元,后者估值 2000 亿美元。

字节跳动的成功,先是依靠「精准个性化内容,在移动互联网场景中落地」作为开端,再利用「产品创新、快速迭代 和 全球化视野」来实现可持续的高速增长。

SpaceX 在创始人埃隆·马斯克信奉的"第一性原理"下,将火箭发射价格降低了近 10 倍。SpaceX 前期依靠于和 NASA 的多份商业卫星发射服务合同得以存活,后期依靠于和 NASA 的商业轨道运输服务合同、商业载人航天以及星链(Starlink)实现盈利。

前三都聊到了,干脆一览全球十大独角兽都是哪些:

alt
  1. ByteDance:中国,以推荐算法驱动的内容平台今日头条和短视频平台抖音(国际版为 TikTok)而闻名
  2. SpaceX:美国,由埃隆·马斯克(Elon Musk)创立的太空探索技术公司
  3. OpenAI:美国,人工智能领域的领跑全球的公司
  4. Stripe:美国,提供在线支付处理解决方案的公司
  5. SHEIN:发源于中国,但一直强调自己是新加坡的公司,专注于快时尚(服饰和配件)的跨国电子商务公司
  6. Revolut:英国,提供金融科技服务(包括数字银行账户、信用卡和投资服务)的公司
  7. Databricks:美国,专注于大数据处理和分析的平台
  8. Fanatics:美国,专注于体育商品的在线零售的电子商务公司
  9. Canva:澳大利亚,一个在线图形设计平台
  10. Chime:美国,一家提供移动银行服务的金融科技公司

没想到吧?全球十大独角兽公司里,有 1.5 家是中国企业。

但实际上,可能是 2.5 家。

大家都忽略了,那家上市被中止的企业:蚂蚁金服。

在被喊停前,当时普遍认为蚂蚁上市后市值可以冲击 2 万亿人民币,要知道当时整个科创板加起来才 2.4 万亿。

这全球前十独角兽榜单,大家有何看法?

有多少家是你认识的?又有哪些企业是你觉得应该上榜的?

欢迎评论区交流。

...

回归主题。

来一道和「字节跳动」相关的算法题。

题目描述

平台:LeetCode

题号:897

给你一棵二叉搜索树,请你按中序遍历将其重新排列为一棵递增顺序搜索树,使树中最左边的节点成为树的根节点,并且每个节点没有左子节点,只有一个右子节点。

示例 1:

alt
输入:root = [5,3,6,2,4,null,8,1,null,null,null,7,9]

输出:[1,null,2,null,3,null,4,null,5,null,6,null,7,null,8,null,9]

示例 2:

alt
输入:root = [5,1,7]

输出:[1,null,5,null,7]

提示:

  • 树中节点数的取值范围是

基本思路

由于给定的树是一棵「二叉搜索树」,因此只要对其进行「中序遍历」即可得到有序列表,再根据有序列表构建答案即可。

而二叉搜索树的「中序遍历」有「迭代」和「递归」两种形式。

递归

递归写法十分简单,属于树的遍历中最简单的实现方式。

Java 代码:

class Solution {
    List<TreeNode> list = new ArrayList<>();
    public TreeNode increasingBST(TreeNode root) {
        dfs(root);
        TreeNode dummy = new TreeNode(-1);
        TreeNode cur = dummy;
        for (TreeNode node : list) {
            cur.right = node;
            node.left = null;
            cur = node;
        }
        return dummy.right;
    }
    void dfs(TreeNode root) {
        if (root == nullreturn ;
        dfs(root.left);
        list.add(root);
        dfs(root.right);
    }
}

C++ 代码:

class Solution {
public:
    vector<TreeNode*> list;
    TreeNode* increasingBST(TreeNode* root) {
        dfs(root);
        TreeNode* dummy = new TreeNode(-1);
        TreeNode* cur = dummy;
        for (auto node : list) {
            cur->right = node;
            node->left = nullptr;
            cur = node;
        }
        return dummy->right;
    }
    void dfs(TreeNode* root) {
        if (!root) return;
        dfs(root->left);
        list.push_back(root);
        dfs(root->right);
    }
};

Python 代码:

class Solution:
    def increasingBST(self, root: TreeNode) -> TreeNode:        
        self.list = []
        self.dfs(root)
        dummy = TreeNode(-1)
        cur = dummy
        for node in self.list:
            cur.right = node
            node.left = None
            cur = node
        return dummy.right
    
    def dfs(self, root):
        if root:
            self.dfs(root.left)
            self.list.append(root)
            self.dfs(root.right)
  • 时间复杂度:
  • 空间复杂度:

迭代

迭代其实就是使用「栈」来模拟递归过程,也属于树的遍历中的常见实现形式。

一般简单的面试中如果问到树的遍历,面试官都不会对「递归」解法感到满意,因此掌握「迭代/非递归」写法同样重要。

Java 代码:

class Solution {
    public TreeNode increasingBST(TreeNode root) {
        List<TreeNode> list = new ArrayList<>();
        Deque<TreeNode> d = new ArrayDeque<>();
        while (root != null || !d.isEmpty()) {
            while (root != null) {
                d.add(root);
                root = root.left;
            }
            root = d.pollLast();
            list.add(root);
            root = root.right;
        }   
        TreeNode dummy = new TreeNode(-1);
        TreeNode cur = dummy;
        for (TreeNode node : list) {
            cur.right = node;
            node.left = null;
            cur = node;
        }
        return dummy.right;
    }
}

C++ 代码:

class Solution {
public:
    TreeNode* increasingBST(TreeNode* root) {
        vector<TreeNode*> list;
        deque<TreeNode*> d;
        while (root != nullptr || !d.empty()) {
            while (root != nullptr) {
                d.push_back(root);
                root = root->left;
            }
            root = d.back();
            d.pop_back();
            list.push_back(root);
            root = root->right;
        }
        TreeNode* dummy = new TreeNode(-1);
        TreeNode* cur = dummy;
        for (auto node : list) {
            cur->right = node;
            node->left = nullptr;
            cur = node;
        }
        return dummy->right;
    }
};

Python 代码:

class Solution:
    def increasingBST(self, root: TreeNode) -> TreeNode:
        lst = []
        d = []
        while root or d:
            while root:
                d.append(root)
                root = root.left
            root = d.pop()
            lst.append(root)
            root = root.right
        dummy = TreeNode(-1)
        cur = dummy
        for node in lst:
            cur.right = node
            node.left = None
            cur = node
        return dummy.right
  • 时间复杂度:
  • 空间复杂度:

最后

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

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

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

欢迎关注,明天见。

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

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

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

相关文章

Linux·进程概念(下)

1. 进程优先级 优先级就是获得某种资源的先后顺序&#xff0c;因为CPU资源是有限的&#xff0c;因此各个进程之间要去争取CPU的资源。 那么针对Linux操作系统下的PCB中&#xff0c;也就是task_struct结构体中&#xff0c;使用了int类型的变量记录了每个进程的优先级属性&#x…

WIFI网速不够是不是光猫的“路由模式”和“桥接模式”配置错了?

光猫&#xff08;光纤调制解调器&#xff09;是一种用于将光纤信号转换为数字信号的设备&#xff0c;通常用于家庭或企业网络中。光猫可以在不同的工作模式下运行&#xff0c;其中最常见的两种模式是“路由模式”和“桥接模式”。以下是这两种模式的详细解释及其优缺点。 一、路…

python实现单例模式的常用三种方法-基于__new__/使用装饰器以及Python中的值类型、引用类型以及类的静态变量、读取进程和线程ID

一、python实现单例模式的常用三种方法-基于__new__,使用装饰器 涉及到类的使用就会有类的实例化&#xff0c;就会有类单例实现的需求&#xff0c;因为重复实例化会浪费资源。python中的单例模式与别的语言相比&#xff0c;单例实现的方法更丰富。虽然python实现单例的模式的方…

MobaXterm使用

Linux连接工具MobaXterm详细使用教程-CSDN博客

Elasticsearch学习笔记(五)Elastic stack安全配置二

一、手动配置http层SSL 通过前面的配置&#xff0c;我们为集群传输层手动配置了TLS&#xff0c;集群内部节点之间的通信使用手动配置的证书进行加密&#xff0c;但是集群与外部客户端的http层目前还是使用的自动配置&#xff0c;集群中HTTP的通信目前仍然使用自动生成的证书ht…

【韩顺平Java笔记】第7章:面向对象编程(基础部分)【227-261】

文章目录 227. 重载介绍228. 重载快速入门229. 重载使用细节230. 重载课堂练习1231. 232. 重载课堂练习2,3233. 可变参数使用233.1 基本概念233.2 基本语法233.3 快速入门案例 234. 可变参数细节235. 可变参数练习236. 作用域基本使用237. 作用域使用细节1238. 作用域使用细节2…

Docker安装部署和常用命令

Docker 是一种开源的平台&#xff0c;旨在帮助开发者和运维人员更轻松地创建、部署和运行应用程序。通过将应用程序及其依赖项打包到一个名为容器的标准化单位中&#xff0c;Docker 提供了一种轻量级的虚拟化解决方案。与传统虚拟机相比&#xff0c;Docker 容器可以在同一主机上…

GoogleNet原理与实战

在2014年的ImageNet图像识别挑战赛中&#xff0c;一个名叫GoogLeNet 的网络架构大放异彩。以前流行的网络使用小到11&#xff0c;大到77的卷积核。本文的一个观点是&#xff0c;有时使用不同大小的卷积核组合是有利的。 回到他那个图里面你会发现,这里的一个通过我们最大的池化…

12条职场经验总结

01 事干得好不好尚且不说&#xff0c;但是话一定要说得漂亮。 比如&#xff0c;当领导给你安排工作的时候&#xff0c;你一定要非常积极地响应&#xff0c;拍着胸脯跟领导说“放心吧”。至于后续到底怎么干&#xff0c;再结合实际情况有的放矢地把握。 02 当别人夸奖你的时…

记录使用crypto-js、jsencrypt实现js加密的方法

实用为主&#xff0c;直接上干货。 使用工具&#xff1a;pycharm专业版2020.3.2。 记录通过crypto-js模块、jsencrypt模块两种方式实现加密。 本文在pycharm中新建一个项目&#xff0c;一步一步记录实现步骤。 一、新建pycharm项目并新建两个js文件&#xff0c;分别命名为c…

Python 工具库每日推荐 【Requests】

文章目录 引言Python网络库的重要性今日推荐:Requests工具库主要功能:使用场景:安装与配置快速上手示例代码代码解释实际应用案例案例1:获取天气信息案例分析案例2:文件上传案例分析高级特性会话和Cookie处理自定义请求头超时设置代理设置扩展阅读与资源优缺点分析优点:缺…

Markdown 语法详解大全(超级版)(三)——甘特图语法详解

Markdown 语法详解大全(超级版)&#xff08;三&#xff09;——甘特图语法详解 Markdown 语法详解大全(超级版)&#xff08;一&#xff09; Markdown 语法详解大全(超级版)&#xff08;二&#xff09; Markdown 语法详解大全(超级版)&#xff08;三&#xff09; Markdown 语法…

[Linux#61][UDP] port | netstat | udp缓冲区 | stm32

目录 0. 预备知识 1. 端口号的划分范围 2. 认识知名端口号 3. netstat 命令 4. pidof 命令 二.UDP 0.协议的学习思路 1. UDP 协议报文格式 报头与端口映射&#xff1a; 2. UDP 的特点 面向数据报&#xff1a; 3. UDP 的缓冲区 4. UDP 使用注意事项 5. 基于 UDP 的…

栈的介绍与实现

一. 概念与结构 栈&#xff1a;⼀种特殊的线性表&#xff0c;其只允许在固定的⼀端进⾏插⼊和删除元素操作。进⾏数据插⼊和删除操作的⼀端称为栈顶&#xff0c;另⼀端称为栈底。栈中的数据元素遵守后进先出LIFO&#xff08;Last In First Out的原则。 压栈&#xff1a;栈的插…

平面电磁波(解麦克斯韦方程)电场相位是复数的积分常数,电场矢量每个分量都有一个相位。磁场相位和电场一样,这是因为无损介质中实数的波阻抗

注意无源代表你立方程那个点xyzt处没有源&#xff0c;电场磁场也是这个点的。 j电流面密度&#xff0c;电流除以单位面积&#xff0c;ρ电荷体密度&#xff0c;电荷除以单位体积。 j方程组有16个未知数&#xff0c;每个矢量有三个xyz分量&#xff0c;即三个未知数&#xff0c;…

k8s的简介和部署

一、k8s简介 在部署应用程序的方式上面&#xff0c;主要经历了三个阶段&#xff1a; 传统部署:互联网早期&#xff0c;会直接将应用程序部署在物理机上优点:简单&#xff0c;不需要其它技术的参与缺点:不能为应用程序定义资源使用边界&#xff0c;很难合理地分配计算资源&…

fiddler抓包18-1_导出jmeter脚本(jmx文件)

课程大纲 方法1 ① 下载2个扩展文件&#xff0c;FiddlerExtensions.dll和FiddlerExtensions.pdb&#xff0c;到Fiddler根目录中的“ImportExport”下&#xff0c;重启Fiddler。 下载链接: https://pan.baidu.com/s/1qtLoaiTd-VfHFb3UIPoSZw?pwdtwcu提取码: twcu ② Fiddler导…

UIAbility组件

一、作用 UIAbility组件是系统调度的基本单元,为应用提供绘制界面的窗口。一个应用可以包含一个或多个UIAbility组件 1、每一个UIAbility组件实例都会在最近任务列表中显示一个对应的任务。 如果开发者希望在任务视图中看到一个任务,建议使用“一个UIAbility+多个页面”的方…

Qt教程(002):Qt项目创建于框架介绍

二、创建Qt项目 2.1 创建项目 【1、New Project】 【2、选择Qt Widgets Application】 【3、设置项目名称和保存路径】 注意&#xff0c;项目名称和路径不要带中文。 【4、选择QWidget】 带菜单栏的窗口QMainWindow空白窗口QWidget对话框窗口QDialog 【5、编译】 2.2 项目框…

No.3 笔记 | Web安全基础:Web1.0 - 3.0 发展史

大家好&#xff01;作为一个喜欢探索本质的INTP&#xff0c;我整理了一份简明易懂的Web安全笔记。希望能帮助你轻松掌握这个领域的核心知识。 这份笔记涵盖了Web发展的历程&#xff0c;从静态的Web 1.0到智能化的Web 3.0。我们将探讨URL和HTTP协议&#xff0c;揭示它们在网络中…