英伟达狂飙,上演大象坐火箭

英伟达市值破 2W 亿

这两天全球资本市场最大的事情就是英伟达(NVDA)公布了财报。

本来市场(分析师)的预期就高,结果财报公布比预期还要高出不少。

NVDA 直接上演「大象坐火箭」,在财报公布后的第一个交易日收涨 16.40%,成为首家市值超 2W 亿的半导体企业。

alt

16.40% 是什么概念?差不多英伟达单日涨幅就等于我们一个阿里加网易。

再叠加最近 OpenAI 的 Sora 热潮,最近是一点质疑「卖铲人」的声音都没有了,毕竟质疑 NVDA 的空头都烦保证金去了。

普通人的如果想在投资市场参与 AI 红利,最直接的是买美股 NVDA 和 MSFT,如果受限国内市场,可以买一些纳指 ETF 变相持有两者,但需要注意溢价。

...

回归主题。

周末了来一道不太难的算法题,也是一道外企笔试中的热门题。

题目描述

平台:LeetCode

题号:950

牌组中的每张卡牌都对应有一个唯一的整数。你可以按你想要的顺序对这套卡片进行排序。

最初,这些卡牌在牌组里是正面朝下的(即,未显示状态)。

现在,重复执行以下步骤,直到显示所有卡牌为止:

  1. 从牌组顶部抽一张牌,显示它,然后将其从牌组中移出。
  2. 如果牌组中仍有牌,则将下一张处于牌组顶部的牌放在牌组的底部。
  3. 如果仍有未显示的牌,那么返回步骤 1。否则,停止行动。

返回能以递增顺序显示卡牌的牌组顺序。

答案中的第一张牌被认为处于牌堆顶部。

示例:

输入:[17,13,11,2,3,5,7]

输出:[2,13,3,11,5,17,7]

解释:
我们得到的牌组顺序为 [17,13,11,2,3,5,7](这个顺序不重要),然后将其重新排序。
重新排序后,牌组以 [2,13,3,11,5,17,7] 开始,其中 2 位于牌组的顶部。
我们显示 2,然后将 13 移到底部。牌组现在是 [3,11,5,17,7,13]。
我们显示 3,并将 11 移到底部。牌组现在是 [5,17,7,13,11]。
我们显示 5,然后将 17 移到底部。牌组现在是 [7,13,11,17]。
我们显示 7,并将 13 移到底部。牌组现在是 [11,17,13]。
我们显示 11,然后将 17 移到底部。牌组现在是 [13,17]。
我们展示 13,然后将 17 移到底部。牌组现在是 [17]。
我们显示 17
由于所有卡片都是按递增顺序排列显示的,所以答案是正确的。

提示:

  • 对于所有的  i != jA[i] != A[j]

模拟

根据题意,我们可以先使用双端队列对 deck 进行一次模拟,并用哈希表记下每个元素 的显示顺序(利用 元素各不相同,可直接用 作为 key)。

随后考虑如何通过哈希表来构建答案数组 ans

假设原数组中的 为首次显示的卡牌,那么 应该放置 deck 中最小的元素,同理若 若最后显示的卡牌,则 应放置 deck 中的最大元素。

为了方便找 deck 中第 大元素,可对 deck 进行拷贝并排序。

Java 代码:

class Solution {
    public int[] deckRevealedIncreasing(int[] deck) {
        int n = deck.length, idx = 0;
        Map<Integer, Integer> map = new HashMap<>();
        Deque<Integer> d = new ArrayDeque<>();
        for (int x : deck) d.addLast(x);
        while (!d.isEmpty()) {
            map.put(d.pollFirst(), idx++);
            if (!d.isEmpty()) d.addLast(d.pollFirst());
        }
        int[] ans = new int[n], temp = deck.clone();
        Arrays.sort(temp);
        for (int i = 0; i < n; i++) ans[i] = temp[map.get(deck[i])];
        return ans;
    }
}

C++ 代码:

class Solution {
public:
    vector<intdeckRevealedIncreasing(vector<int>& deck) {
        int n = deck.size(), idx = 0;
        map<intintmap;
        deque<int> d;
        for (int x : deck) d.push_back(x);
        while (!d.empty()) {
            map[d.front()] = idx++;
            d.pop_front();
            if (!d.empty()) {
                d.push_back(d.front());
                d.pop_front();
            }
        }
        vector<intans(n);
        vector<int> temp = deck;
        sort(temp.begin(), temp.end());
        for (int i = 0; i < n; i++) ans[i] = temp[map[deck[i]]];
        return ans;
    }
};

Python3 代码:

class Solution:
    def deckRevealedIncreasing(self, deck: List[int]) -> List[int]:
        n, idx = len(deck), 0
        map = {}
        d = deque(deck)
        while d:
            map[d.popleft()] = idx
            idx += 1
            if d:
                d.append(d.popleft())
        temp = sorted(deck)
        return [temp[map[deck[i]]] for i in range(n)]

TypeScript 代码:

function deckRevealedIncreasing(deck: number[]): number[] {
    let n = deck.length, idx = 0;
    const map = {};
    const d = [...deck];
    while (d.length > 0) {
        map[d.shift()!] = idx++;
        if (d.length > 0) d.push(d.shift()!);
    }
    const ans = new Array(n);
    const temp = [...deck].sort((a, b) => a - b);
    for (let i = 0; i < n; i++) ans[i] = temp[map[deck[i]]];
    return ans;
};
  • 时间复杂度:使用队列模拟一次操作的复杂度为 (每个元素只有一次出入队机会);对原数组进行复制并排序的复杂度 ;构建答案复杂度为 。整体复杂度为
  • 空间复杂度:

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

欢迎关注,明天见。

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构与算法】(19)高级数据结构与算法设计之 图 拓扑排序 最短路径 最小生成树 不相交集合(并查集合)代码示例

目录 6) 拓扑排序KahnDFS 7) 最短路径DijkstraBellman-FordFloyd-Warshall 8) 最小生成树PrimKruskal 9) 不相交集合&#xff08;并查集合&#xff09;基础路径压缩Union By Size 图-相关题目 6) 拓扑排序 #mermaid-svg-MQhLsXiMwnlUL3q4 {font-family:"trebuchet ms"…

语音转字幕:Whisper模型的功能和使用

&#x1f341; 作者&#xff1a;知识浅谈&#xff0c;CSDN签约讲师&#xff0c;CSDN博客专家&#xff0c;华为云云享专家&#xff0c;阿里云专家博主 &#x1f4cc; 擅长领域&#xff1a;全栈工程师、爬虫、ACM算法 &#x1f492; 公众号&#xff1a;知识浅谈 &#x1f91e;语音…

【k8s资源调度-HPA(自动扩缩容)】

1、HPA可以做什么&#xff1f; 通过观察pod的cpu、内存使用率或自定义metrics指标进行自动的扩容或缩容pod的数量。通常用于Deployment&#xff0c;不适用于无法扩/缩容的对象&#xff0c;如DaemonSet。控制管理器每隔30s(可以通过-horizontal-pod-autoscaler–sync-period修改…

信息系统项目管理师论文分享(质量管理)

水一篇文章。我发现身边考高项的朋友很多都是论文没过&#xff0c;我想着那就把我的论文分享出来&#xff0c;希望能有帮助。 质量管理 摘要 2020年5月&#xff0c;我作为项目经理参加了“某市某医联体的互联网诊疗&#xff08;互联网医院和远程医疗&#xff09;平台”的建设…

多表联合分页查询(二)---- springboot整合MybatisPlus分页代码

目录 一、分页配置代码解读&#xff08;使用MP自带分页&#xff09;二、Controller层代码解读三、service层代码解读四、Mapper层代码解读五、结果展示 一、分页配置代码解读&#xff08;使用MP自带分页&#xff09; package com.minster.yanapi.Config;import com.baomidou.m…

Python 读取txt中的汉字报错

Python读取txt中的汉字报错&#xff1a;UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xa7 in position 4: illegal multibyte sequence 举例&#xff1a; fileE:/0_MyWork/python_programm/children_name/strich7.txtwith open(file, "r") as file_7str…

LeetCode 1637.两点之间不包含任何点的最宽垂直区域

给你 n 个二维平面上的点 points &#xff0c;其中 points[i] [xi, yi] &#xff0c;请你返回两点之间内部不包含任何点的 最宽垂直区域 的宽度。 垂直区域 的定义是固定宽度&#xff0c;而 y 轴上无限延伸的一块区域&#xff08;也就是高度为无穷大&#xff09;。 最宽垂直区…

基于jmeter的性能全流程测试

01、做性能测试的步骤 1、服务器性能监控 首先要在对应服务器上面安装性能监控工具&#xff0c;比如linux系统下的服务器&#xff0c;可以选择nmon或者其他的监控工具&#xff0c;然后在jmeter模拟场景跑脚本的时候&#xff0c;同时启动监控工具&#xff0c;这样就可以获得jm…

抖音视频下载工具|视频内容提取软件

引言部分&#xff1a; 针对抖音视频下载需求&#xff0c;我们团队自豪推出一款功能强大的工具&#xff0c;旨在解决用户获取抖音视频繁琐问题的困扰。我们通过基于C#开发的工具&#xff0c;让用户能够轻松通过关键词搜索实现自动批量抓取视频&#xff0c;并根据需求进行选择性批…

Linux——缓冲区封装系统文件操作

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、FILE二、封装系统接口实现文件操作1、text.c2、mystdio.c3、mystdio.h 一、FILE 因为IO相…

谷歌收购域名花费了100万美元的确让大家眼红

谷歌斥资100万美元购买了该域名。 卖个好价钱确实让大家眼红&#xff0c;但能不能卖到高价就是另一回事了。 首先&#xff0c;据统计&#xff0c;截至2008年底&#xff0c;我国域名总数达到1680万多个&#xff0c;可用的域名资源几乎无法统计&#xff0c;因为英文的组合太多了…

2024.2.25 在centos8.0安装docker

2024.2.25 在centos8.0安装docker 安装过程比较简单&#xff0c;按顺序安装即可&#xff0c;简要步骤&#xff1a; 一、更新已安装的软件包&#xff1a; sudo yum update二、安装所需的软件包&#xff0c;允许 yum 通过 HTTPS 使用存储库&#xff1a; sudo yum install -y …

经典枚举算法

解析&#xff1a; 首先答案肯定是字符串的某个前缀&#xff0c;然后简单直观的想法就是枚举所有的前缀来判断&#xff0c;我们设这个前缀串长度为 lenx &#xff0c;str1 的长度为 len1&#xff0c;str2 的长度为 len2&#xff0c;则我们知道前缀串的长度必然要是两个字符串长…

mac拼图软件有哪些?推荐5款拼图软件

mac拼图软件有哪些&#xff1f;在数字图像处理中&#xff0c;拼图软件扮演着至关重要的角色。对于Mac用户来说&#xff0c;选择一款功能强大、操作简便的拼图软件是提升工作效率和创作体验的关键。本文将为你介绍五款优秀的Mac拼图软件&#xff0c;帮助你轻松完成图片拼接、制作…

代码随想录算法训练营day27|39. 组合总和、40.组合总和II

39. 组合总和 如下树形结构如下&#xff1a; 选取第二个数字5之后&#xff0c;剩下的数字要从5、3中取数了&#xff0c;不能再取2了&#xff0c;负责组合就重复了&#xff0c;注意这一点&#xff0c;自己做的时候没想明白这一点 如果是一个集合来求组合的话&#xff0c;就需…

计算机网络-无线通信网

1.各种移动通信标准 1G&#xff1a;第一代模拟蜂窝&#xff1a;频分双工FDD。2G&#xff1a;第二代数字蜂窝 I.GDM&#xff08;全球移动通信&#xff09;采用TDMA。II.CDMA&#xff08;码分多址通信&#xff09;。2.5G&#xff1a;第2.5代通用分组无线业务GPRS。2.75G&#xf…

Linux--串口屏显示控制实验

一、 实验简介 实验目标&#xff1a;在Linux下通过串口屏显示并控制功能模块的状态和参数 操作系统&#xff1a;Ubuntu 20.04.6 LTS 串口屏&#xff1a;迪文串口屏 DMG48270C043_03W 二、实现代码-- C语言 代码功能就是在Linux下使用串口和TCP&#xff0c;重点在于如何处理好…

linux 文本编辑命令【重点】

目录 vi&vim介绍 vim安装 vim使用 查找命令 find grep 文本编辑的命令&#xff0c;主要包含两个: vi 和 vim vi&vim介绍 作用: vi命令是Linux系统提供的一个文本编辑工具&#xff0c;可以对文件内容进行编辑&#xff0c;类似于Windows中的记事本 语法: vi file…

MySQL锁三部曲:临键、间隙与记录的奇妙旅程

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 MySQL锁三部曲&#xff1a;临键、间隙与记录的奇妙旅程 前言临键锁的奥秘间隙锁记录锁 前言 在数据库世界中&#xff0c;锁是维护数据完整性的一种关键机制。而MySQL中的临键锁、间隙锁和记录锁则是锁…

Git笔记——4

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言 一、操作标签 二、推送标签 三、多人协作一 完成准备工作 协作开发 将内容合并进master 四、多人协作二 协作开发 将内容合并进master 五、解决 git branch -a…
最新文章