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)
我是宫水三叶,每天都会分享算法题解,并和大家聊聊近期的所见所闻。
欢迎关注,明天见。
更多更全更热门的「笔试/面试」相关资料可访问排版精美的 合集新基地 🎉🎉