大佬复活,暴打空头,两天拉升 180%

GME 暴打空头

大家还记得 2021 年,美国散户大战华尔街的新闻吗?

当时在推特上,几位大佬进行号召,吸引了大量散户往里冲,短短一个月,把一家业绩平平的美股公司「游戏驿站(GME)」拉升了 25 倍,暴击了华尔街所有的做空机构。

在击退几乎所有机构之后,大佬们纷纷淡出,GME 也进入长期阴跌的周期中。

后来这事还被拍成了电影,名为《傻钱》:

alt

而就在前天,当时号召干翻机构的大哥 Roaring Kitty(咆哮猫)突然复活,在推特中发了一张图片:

alt

一个玩游戏的人突然正坐,变得专注。

要知道这位大佬,上一条推特可是在 2021 年(35 个月前),这不禁让人遐想。

受此影响,当日 GME 盘前上涨超 50%,开盘后多次触发停牌,盘中最大涨幅去到 110%,收盘时涨幅为 74.4%。

alt

第二天盘前上涨超 100%,开盘后稍有回落,但收盘时仍收涨 60%。

alt

短短两天,累积涨幅达 179.21%。

alt

可见,疯狂还没停止,大家猜测这次戏码会往什么方向发展?

...

回归主线。

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

题目描述

平台:LeetCode

题号:878

一个正整数如果能被 ab 整除,那么它是神奇的。

给定三个整数 na , b ,返回第 n 个神奇的数字。因为答案可能很大,所以返回答案 对  取模 后的值。

示例 1:

输入:n = 1, a = 2, b = 3

输出:2

示例 2:

输入:n = 4, a = 2, b = 3

输出:6

提示:

数学

提示一 : 从题面分析常见做法,从常见做法复杂度出发考虑其他做法

若不看数据范围,只看题面,容易想到的做法是「多路归并」:起始使用两个指针指向 [a, 2a, 3a, ... ][b, 2b, 3b, ...] 的开头,不断比较两指针所指向的数值大小,从而决定将谁后移,并不断更新顺位计数。

该做法常见,但其复杂度为 ,对于本题 来说并不可行。

确定线性复杂度的做法不可行后,我们考虑是否存在对数复杂度的做法。

提示二 : 如何考虑常见的对数复杂度做法,如何定义二段性

题目要我们求第 个符合要求的数,假设我们想要通过「二分」来找该数值,那么我们需要分析其是否存在「二段性」。

假设在所有「能够被 ab 整除的数」形成的数轴上,我们要找的分割点是 k,我们期望通过「二分」来找到 k 值,那么需要定义某种性质,使得 k 左边的数均满足该性质,k 右边的数均不满足该性质。

不难想到可根据题意来设定该性质:小于 k 的任意数字 x 满足在 范围数的个数不足 k 个,而大于等于 k 的任意数字 x 则不满足该性质。

提示三 : 如何实现高效的 check 函数

当确定使用「二分」来做时,剩下问题转化为:「如何快速得知某个 中满足要求的数的个数。」

容易联想到「容斥原理」:「能被 ab 整除的数的个数 = 能够被 a 整除的数的个数 + 能够被 b 整除的数的个数 - 既能被 a 又能被 b 整除的数的个数」

其中 cab 的最小公倍数。

求解最小公倍数 lcm 需要实现最大公约数 gcd,两者模板分别为:

int gcd(int a, int b) {
    return b == 0 ? a : gcd(b, a % b);
}
int lcm(int a, int b) {
    return a * b / gcd(a, b);
}
提示四 : 如何确定值域

一个合格的值域只需要确定答案在值域范围即可,因此我们可以直接定值域大小为

或是根据 ab 的取值来大致确定:假设两者中的较大值为 ,此时第 个符合要求的数最大不会超过 ,因此也可以设定值域大小为

Java 代码:

class Solution {
    int n, a, b, c;
    int gcd(int a, int b) {
        return b == 0 ? a : gcd(b, a % b);
    }
    public int nthMagicalNumber(int _n, int _a, int _b) {
        n = _n; a = _a; b = _b; c = a * b / gcd(a, b);
        long l = 0, r = (long)1e18;
        while (l < r) {
            long mid = l + r >> 1;
            if (check(mid) >= n) r = mid;
            else l = mid + 1;
        }
        return (int)(r % 1000000007);
    }
    long check(long x) {
        return x / a + x / b - x / c;
    }
}

C++ 代码:

class Solution {
public:
    int n, a, b, c;
    int gcd(int a, int b) {
        return b == 0 ? a : gcd(b, a % b);
    }
    long check(long x) {
        return x / a + x / b - x / c;
    }
    int nthMagicalNumber(int _n, int _a, int _b) {
        n = _n; a = _a; b = _b; c = a * b / gcd(a, b);
        long l = 0, r = 1e18;
        while (l < r) {
            long mid = l + r >> 1;
            if (check(mid) >= n) r = mid;
            else l = mid + 1;
        }
        return (int)(r % 1000000007);
    }
};

Python3 代码:

class Solution:
    def nthMagicalNumber(self, n: int, a: int, b: int) -> int:
        def gcd(a, b):
            return a if b == 0 else gcd(b, a % b)
        def check(x):
            return x // a + x // b - x // c
        c = a * b // gcd(a, b)
        l, r = 01e18
        while l < r:
            mid = (l + r) // 2
            if check(mid) >= n:
                r = mid
            else:
                l = mid + 1
        return int(r % 1000000007)

TypeScript 代码:

function nthMagicalNumber(n: number, a: number, b: number): number {
    function gcd(a: number, b: number): number {
        return b == 0 ? a : gcd(b, a % b)
    }
    function check(x: number): number {
        return Math.floor(x / a) + Math.floor(x / b) - Math.floor(x / c)
    }
    const c = Math.floor(a * b / gcd(a, b))
    let l = 0, r = 1e18
    while (l < r) {
        const mid = Math.floor((l + r) / 2)
        if (check(mid) >= n) r = mid
        else l = mid + 1
    }
    return r % 1000000007
}
  • 时间复杂度: ,其中 为值域大小
  • 空间复杂度:

最后

给大伙通知一下 📢 :

全网最低价 LeetCode 会员目前仍可用 ~

📅 年度会员:有效期加赠两个月!!; 季度会员:有效期加赠两周!!

🧧 年度会员:获 66.66 现金红包!!; 季度会员:获 22.22 现金红包!!

🎁 年度会员:参与当月丰厚专属实物抽奖(中奖率 > 30%)!!

专属链接:leetcode.cn/premium/?promoChannel=acoier

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

欢迎关注,明天见。

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

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

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

相关文章

怎么3d立面有些模型不能删除是什么原因怎么解决?---模大狮模型网

在进行3D建模和设计过程中&#xff0c;有时会遇到一些模型无法删除的情况&#xff0c;这可能会导致设计流程受阻&#xff0c;影响工作效率。本文将介绍在3D立面中遇到无法删除模型的原因以及解决方法&#xff0c;帮助您顺利解决这一问题&#xff0c;提高设计效率。 一、模型未正…

地平线X3开发板配置wifi调试

1. 系统镜像制作 系统镜像的制作依赖bsp与补丁包&#xff0c;bsp在天工开物全量包中&#xff1a;https://developer.horizon.ai/resource 补丁下载链接&#xff1a;链接&#xff1a;https://pan.baidu.com/s/1YKcOWL0EpboGq-SnqwIGeQ 提取码&#xff1a;b6lf 补丁包中有详细…

这 10 个 Linux 命令,我不允许你还不知道!

Linux当中有很多比较有趣的命令&#xff0c;可以动手看看&#xff0c;很简单的。 1.rev命令 一行接一行地颠倒所输入的字符串。 运行&#xff1a; $rev 如输入&#xff1a;shiyanlou shiyanlou 2.asciiview命令 1.先安装aview $sudo apt-get install aview 2.再安装im…

【吃透Java手写】6-Netty-NIO-BIO-简易版

Netty 1 BIO&NIO模型 1.1 BIO 在JDK1.4出来之前&#xff0c;我们建立网络连接的时候采用BIO模式&#xff0c;需要先在服务端启动一个ServerSocket&#xff0c;然后在客户端启动Socket来对服务端进行通信&#xff0c;默认情况下服务端需要对每个请求建立一堆线程等待请求&…

TikTok Shop认知课 打通TK小店全流程

资料 001-先导课.mp4 002-如何用思维导图工具做课程笔记.mp4 003-TTS入驻模式.mp4 004-如何获取店铺.mp4 005-TTS店铺注册全流程,mp4 006-店铺整体运营思路.mp4 007-运营的几个误区.mp4 008-新店起店准备工作,mp4 009-规店铺风控注意事项,mp4 010-店铺基础设置之店铺…

基于火山引擎云搜索的混合搜索实战

在搜索应用中&#xff0c;传统的 Keyword Search 一直是主要的搜索方法&#xff0c;它适合精确匹配查询的场景&#xff0c;能够提供低延迟和良好的结果可解释性&#xff0c;但是 Keyword Search 并没有考虑上下文信息&#xff0c;可能产生不相关的结果。最近几年&#xff0c;基…

单文件组件,为什么要使用 SFC

介绍 Vue 的单文件组件 (即 *.vue 文件&#xff0c;英文 Single-File Component&#xff0c;简称 SFC) 是一种特殊的文件格式&#xff0c;使我们能够将一个 Vue 组件的模板、逻辑与样式封装在单个文件中。下面是一个单文件组件的示例&#xff1a; <script setup> impor…

优秀博士学位论文分享:复杂场景下高精度有向目标检测的研究

优秀博士学位论文代表了各学科领域博士研究生研究成果的最高水平&#xff0c;本公众号近期将推出“优秀博士学位论文分享”系列文章&#xff0c;对人工智能领域2023年优秀博士学位论文进行介绍和分享&#xff0c;方便广大读者了解人工智能领域最前沿的研究进展。 “博士学位论…

C++11 新特性 常量表达式 constexpr

为了解决常量无法确定的问题&#xff0c;C11在新标准中提出了关键字constexpr&#xff0c;它能够有效地定义常量表达式&#xff0c;并且达到类型安全、可移植、方便库和嵌入式系统开发的目的。 一、常量的不确定性 在C11标准以前&#xff0c;我们没有一种方法能够有效地要求一…

LLama3大模型本地部署 仅需6步完成对话模型本地安装部署。附送可视化ui安装、自定义模型目录,修改模型保存地址,第三方微调模型、中文模型下载地址

本篇分为三部分 一&#xff1a;6步完成llama3大模型本地部署 二&#xff1a;8步完成llama3可视化对话界面安装 三&#xff1a;重设模型文件路径 四&#xff1a;微调模型、中文模型下载资源分享 一、LLama3 大模型本地部署安装 首先去mata官网下载ollama客户端 Ollama 选择合适…

linux 环境下 分布式文件搭建fastDFS

1.软件信息 地址&#xff1a;happyfish100 (YuQing) GitHub 1.fastdfs-master.zip 2.fastdfs-nginx-module-master.zip 3.libfastcommon-master.zip 4.libserverframe-master.zip yum install make cmake gcc gcc-c perl 2.安装libfastcommon unzip libfastcommon-mast…

MQTT_客户端安装_1.4

下载地址 MQTTX 下载 下一步直接安装即可 界面介绍

人工智能项目,如何解决大模型的数据私有化

这个问题是最近走访百家企业&#xff0c;客户问的最多的问题。人工智能是对数据集中后&#xff0c;再利用的智能化手段&#xff0c;ChatGPT还在持续的投入&#xff0c;汇集数据、训练模型&#xff0c;微软也不过是做了一个办公客户端的智能工具&#xff0c;那么行业应运之时&am…

基于CentOS-7搭建hadoop3.3.6大数据集群(保姆级教程)

目录 安装虚拟机 为hadoop用户添加权限 关闭防火墙 修改主机名以及ip地址映射 配置ip 连接xshell &#xff0c;以hadoop用户登录 创建目录并将该文件夹权限赋予hadoop用户 安装配置jdk 关闭虚拟机&#xff0c;克隆其他两个节点 修改主机名和ip地址 配置免密登录 安装…

API低代码平台介绍3-异构数据源的数据查询功能

异构数据源的数据查询功能 在上一篇文章中我们通过API平台定义了一个最基本的数据查询接口&#xff0c;本篇文章我们将上升难度&#xff0c;在原有接口的基础上&#xff0c;实现在MySQL数据库和Oracle数据库同时进行数据查询。   什么场景会需要同时对异构数据源进行查询&…

基于FPGA的NC图像质量评估verilog实现,包含testbench和MATLAB辅助验证程序

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 vivado2019.2和matlab2022a测试&#xff0c;结果如下&#xff1a; 2.算法运行软件版本 vivado2019.2 matlab2022a 3.部分核心程序 timescale …

【C语言习题】6.逆序输出

文章目录 1.描述输入描述&#xff1a;输出描述&#xff1a;示例图&#xff1a; 2.解题思路3.具体代码4.代码讲解 1.描述 输入10个整数&#xff0c;要求按输入时的逆序把这10个数打印出来。逆序输出&#xff0c;就是按照输入相反的顺序打印这10个数。 输入描述&#xff1a; 一…

SDL系列(三)—— SDL2.0 扩展库:SDL_image与SDL_mixer

SDL_image SDL 默认支持的&#xff0c;只能打开 BMP 格式的图片 。 然而我们常见的是 Png jpg 格式的图片&#xff0c;于是我们这节完成 SDL 借用 自带的三方库 &#xff0c;来 完成加载渲染 png 等其他图片格式。 SDL_image 简介 使用 SDL_image &#xff0c;您…

[笔试训练](二十三)067:打怪068:字符串分类069:城市群数量

目录 067:打怪 068:字符串分类 069:城市群数量 067:打怪 题目链接:打怪 (nowcoder.com) 题目&#xff1a; 题解&#xff1a; 直接计算结果&#xff1a; 1.一只怪物能抗几次攻击 int m(H/a)(H%a0?0:1); 2.杀死一只怪物&#xff0c;玩家要抗几次攻击 int nm-1; *3.杀死一只…

jmeter指南:JMeter 安装、配置和性能测试

使用 JMeter 进行性能测试 1. Java 版本要求 JMeter 要求与 Java 8 或更高版本兼容。为了确保安全性和性能&#xff0c;建议安装最新次要版本的主要 Java 版本。鉴于 JMeter 仅使用标准 Java API&#xff0c;如果由于 JRE 实现问题而无法运行 JMeter&#xff0c;请不要提交错…