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)

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

欢迎关注,明天见。

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

相关推荐
也无晴也无风雨34 分钟前
深入剖析输入URL按下回车,浏览器做了什么
前端·后端·计算机网络
Martin -Tang1 小时前
Vue 3 中,ref 和 reactive的区别
前端·javascript·vue.js
SRY122404192 小时前
javaSE面试题
java·开发语言·面试
FakeOccupational3 小时前
nodejs 020: React语法规则 props和state
前端·javascript·react.js
放逐者-保持本心,方可放逐3 小时前
react 组件应用
开发语言·前端·javascript·react.js·前端框架
曹天骄4 小时前
next中服务端组件共享接口数据
前端·javascript·react.js
2401_857610034 小时前
多维视角下的知识管理:Spring Boot应用
java·spring boot·后端
阮少年、4 小时前
java后台生成模拟聊天截图并返回给前端
java·开发语言·前端
代码小鑫4 小时前
A027-基于Spring Boot的农事管理系统
java·开发语言·数据库·spring boot·后端·毕业设计
不二人生5 小时前
SQL面试题——连续出现次数
hive·sql·面试