10000000000 大瓜背后的真相(附 PDD 算法真题)

10 个亿的大事?

京东诉阿里强迫商家「二选一」,京东胜诉,获阿里赔偿 10 亿。

很多小伙伴见到公主号开创了锐评时事板块,当天就在后台留言问我看法。

先说结论:这是一则「媒体影响力」远大于「实际意义」的报道

首先,这并不是普罗大众印象中的近期事件,只是裁决结果是最近出而已。

最早京东是在 2013 年就公开指责过阿里强迫商户二选一。

而真正让京东决定掀桌子的是在 2015 年,当时京东蓄力筹备的京东双 11,被马老师精准狙击,通过强迫商家二选一,导致京东活动临近开始,大牌商家走了大半。

于是京东向国家工商总局实名举报阿里,直到 2017 年由北京市高级人民法院正式对阿里发起起诉。

之后的 2017 到 2019,阿里两次试图通过管辖权异议上诉,想把官司挪回杭州打,均以失败告终。

最终官司还是在北京打,一审结果就是大家现在口中的 10 亿大瓜。

但真正的转折,并不在上述任何时间点发生。

在国内,真正的转折是在 2020 年底,市场监管总局根据《反垄断法》对阿里进行立案调查。

调查在 2021 年 4 基本结束,市场监管总局依法作出行政处罚决定,责令阿里停止违法行为。

处以其 2019 年中国境内销售额 4557.12 亿元的 4% 进行罚款,计 182.28 亿元。

如果只有这么一件事,或许只是中国互联网奔涌向前的历史长河中的细微插曲。

但与其同时,前有阿拉斯战略会谈,中美摩擦导致的《外国公司问责法案》出台,后又马老师演讲事件导致的蚂蚁金服 IPO 叫停。

诸多的内外因素,让阿里命运、马老师的社会形象、以及整个中概互联都开始急速向下。

讽刺的是,182 亿的处罚,当时外界普遍是以「靴子落地」来当作利好解读。

但实际上,监管的铁拳只是刚刚热身,远远没到结束。

后来发布《网络小额贷款业务管理暂行办法(征求意见稿)》属于精准打击,通过规定互联网小贷机构最低出资比例(30%),使得蚂蚁金服能够撬动的杠杆率骤降。

这是什么概念?我举个例子你就明白了。

根据蚂蚁金服财报,其此前的出资比例只有 2% 多一点。

这意味着同样是找支付宝借 100 元,蚂蚁金服要从以前的出 2 元,变成出 30 元,剩余的才是金融服务商出的。

罚钱好说,终止 IPO 好说,但这政策基本上属于在大动脉上来一刀了。

...

好了,不能再说了,再说就成编年史了。

回到开头的这 10 亿大瓜,在知道了这案件时间线以及时间点前后的内外局势后。

你还会觉得,这 10 亿真的是媒体口中的标志性时刻,真的是浓墨重彩的一笔吗?

只不过是小案(10 亿)跟大案(182 亿),正常的依法裁决而已,没有什么特别的。

甚至 10 亿这个数字,也没有太多特别意义。

除了能给自媒体在标题中写很多个 0 的机会以外,本身没有太多意义。

甚至我故意在标题多打一个 0,我猜根本没人会去考究点出。

毕竟所谓的 10 亿案,只是一场没人考究真相的媒体狂欢。

撑死了可以再给京东造个梗?

  • 12月29日,京东发声明,到账十个小目标。
  • 12月31日,京东给用户发 10 亿红包?

...

本来文章的锐评时事部分,写到开玩笑这里就结束了。

但我在回看自己是否有错别字的时候,脑里冒出了另外一个疑问:前面我所说的转折点,只是阿里在国内的转折点,那中概互联网的转折点呢,到底在哪?

真的要定一个转折点,我也说不准。

至少在这个时间点往回看,无法准确找出转折点,更多的是诸多蝴蝶效应的叠加状态。

可能是美国新政上台?可能是新冠疫情?

或许只有再过几年,我国经济发展寻求出了新的道路。

那时候再往回看这近十年,才能搞懂在历史长河上这些事情到底是如何发生,以及代价是什么。

...

总结一下,这个 10 亿案产生不了实际"意义"。

在后阿里京东,现拼多多抖音的电商时代,无数证据已经表明,偏袒甚至垄断商家那一套,已经过时,伺候好用户才是根本。

因此,反倒阿里和京东双方最近跟进的「仅退款」事情还值得一讲。

点赞留坑位。

...

回归主线之后,我们不做「阿里」也不做「京东」,我们做「拼多多」的新打榜题。

这是一道简单的数论题,但在 LeetCode 平台定位是困难。

一起来看看这道被不少同学评论为 "hard 中的耻辱" 的新晋打榜题(也不知道是不是恼羞成怒的发言 🤣)。

题目描述

平台:LeetCode

题号:829

给定一个正整数 <math xmlns="http://www.w3.org/1998/Math/MathML"> n n </math>n,返回连续正整数满足所有数字之和为 <math xmlns="http://www.w3.org/1998/Math/MathML"> n n </math>n 的组数。

示例 1:

ini 复制代码
输入: n = 9

输出: 3

解释: 9 = 4 + 5 = 2 + 3 + 4

示例 2:

ini 复制代码
输入: n = 15

输出: 4

解释: 15 = 8 + 7 = 4 + 5 + 6 = 1 + 2 + 3 + 4 + 5

提示:

  • <math xmlns="http://www.w3.org/1998/Math/MathML"> 1 < = n < = 1 0 9 1 <= n <= 10^9 </math>1<=n<=109

数论

假设我们存在某个连续段之和为 <math xmlns="http://www.w3.org/1998/Math/MathML"> n n </math>n,假定该连续段首项为 <math xmlns="http://www.w3.org/1998/Math/MathML"> a a </math>a,长度为 <math xmlns="http://www.w3.org/1998/Math/MathML"> k k </math>k,根据「等差数列求和」可知:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> ( a + a + k − 1 ) × k 2 = n \frac{(a + a + k - 1) \times k}{2} = n </math>2(a+a+k−1)×k=n

简单变形可得:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> ( 2 a + k − 1 ) × k = 2 n ⇔ 2 a = 2 n k − k + 1 (2a + k - 1) \times k = 2n \Leftrightarrow 2a = \frac{2n}{k} - k + 1 </math>(2a+k−1)×k=2n⇔2a=k2n−k+1

根据首项 <math xmlns="http://www.w3.org/1998/Math/MathML"> a a </math>a 和 <math xmlns="http://www.w3.org/1998/Math/MathML"> k k </math>k 均为正整数,可得:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> 2 a = 2 n k − k + 1 ≥ 2 2a = \frac{2n}{k} - k + 1 \geq 2 </math>2a=k2n−k+1≥2

进一步可得:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> 2 n k ≥ k + 1 ⇔ 2 n k > k \frac{2n}{k} \geq k + 1 \Leftrightarrow \frac{2n}{k} > k </math>k2n≥k+1⇔k2n>k

综上,根据 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( 2 a + k − 1 ) × k = 2 n (2a + k - 1) \times k = 2n </math>(2a+k−1)×k=2n 和 <math xmlns="http://www.w3.org/1998/Math/MathML"> 2 n k > k \frac{2n}{k} > k </math>k2n>k 可知, <math xmlns="http://www.w3.org/1998/Math/MathML"> k k </math>k 必然是 <math xmlns="http://www.w3.org/1998/Math/MathML"> 2 n 2n </math>2n 的约数,并且为「较小」的约数。

因此我们可以在 <math xmlns="http://www.w3.org/1998/Math/MathML"> [ 1 , 2 n ) [1, \sqrt{2n}) </math>[1,2n ) 范围内枚举 <math xmlns="http://www.w3.org/1998/Math/MathML"> k k </math>k,如果 <math xmlns="http://www.w3.org/1998/Math/MathML"> k k </math>k 为 <math xmlns="http://www.w3.org/1998/Math/MathML"> 2 n 2n </math>2n 约数,并且结合 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( 2 a + k − 1 ) × k = 2 n (2a + k - 1) \times k = 2n </math>(2a+k−1)×k=2n 可验证 <math xmlns="http://www.w3.org/1998/Math/MathML"> a a </math>a 合法,说明找到了一组合法的 <math xmlns="http://www.w3.org/1998/Math/MathML"> ( a , k ) (a, k) </math>(a,k),对答案进行累加。

Java 代码:

Java 复制代码
class Solution {
    public int consecutiveNumbersSum(int n) {
        int ans = 0; n *= 2;
        for (int k = 1; k * k < n; k++) {
            if (n % k != 0) continue;
            if ((n / k - (k - 1)) % 2 == 0) ans++;
        }
        return ans;
    }
}

C++ 代码:

C++ 复制代码
class Solution {
public:
    int consecutiveNumbersSum(int n) {
        int ans = 0; n *= 2;
        for (int k = 1; k * k < n; k++) {
            if (n % k != 0) continue;
            if ((n / k - (k - 1)) % 2 == 0) ans++;
        }
        return ans;
    }
};

Python 代码:

Python 复制代码
class Solution:
    def consecutiveNumbersSum(self, n: int) -> int:
        ans, n = 0, n * 2
        for k in range(1, int(n ** 0.5) + 1):
            ans += n % k == 0 and (n // k - (k - 1)) % 2 == 0
        return ans

TypeScript 代码:

TypeScript 复制代码
function consecutiveNumbersSum(n: number): number {
    let ans = 0; n *= 2;
    for (let k = 1; k * k < n; k++) {
        if (n % k != 0) continue;
        if ((n / k - (k - 1)) % 2 == 0) ans++;
    }
    return ans;  
};
  • 时间复杂度: <math xmlns="http://www.w3.org/1998/Math/MathML"> O ( 2 n ) O(\sqrt{2n}) </math>O(2n )
  • 空间复杂度: <math xmlns="http://www.w3.org/1998/Math/MathML"> O ( 1 ) O(1) </math>O(1)

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

欢迎关注,明天见。

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

相关推荐
月明长歌1 分钟前
Selenium中隐式等待(Implicit Wait)和显式等待(Explicit Wait)的区别
前端·javascript·selenium
jason.zeng@15022073 分钟前
spring boot mqtt开发-原生 Paho 手动封装(最高灵活性,完全自定义)
java·spring boot·后端
姜太小白3 分钟前
【前端】JavaScript字符串执行方法总结
开发语言·前端·javascript
sunnyday04267 分钟前
Filter、Interceptor、Spring AOP 的执行顺序详解
java·spring boot·后端·spring
GIS之路10 分钟前
GDAL 实现影像合并
前端·python·信息可视化
想用offer打牌15 分钟前
一站式了解Spring AI Alibaba的Memory机制
java·人工智能·后端·spring·chatgpt·系统架构
打工的小王19 分钟前
Langchain4j(二)RAG知识库
java·后端·ai·语言模型
心易行者20 分钟前
Claude Code + Chrome:浏览器层面的AI编程新范式已至
前端·chrome·ai编程
半兽先生22 分钟前
解决使用jsPDF实现表格数据导出pdf功能时中文乱码问题
前端·vue.js·elementui
李慕婉学姐29 分钟前
【开题答辩过程】以《基于springcloud的空气质量监控管理系统》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
后端·spring·spring cloud