Long Luo's Life Notes

每一天都是奇迹

By Long Luo

Leetcode 232. 用栈实现队列 ,难度为Easy


  1. 用栈实现队列

请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(\(\texttt{push}\)\(\texttt{pop}\)\(\texttt{peek}\)\(\texttt{empty}\)):

实现\(\texttt{MyQueue}\)类:

  • \(\texttt{void push(int x)}\)将元素\(x\)推到队列的末尾
  • \(\texttt{int pop()}\)从队列的开头移除并返回元素
  • \(\texttt{int peek()}\)返回队列开头的元素
  • \(\texttt{boolean empty()}\)如果队列为空,返回\(\textit{true}\);否则,返回\(\textit{false}\)

说明:

你 只能 使用标准的栈操作 —— 也就是只有push to top, peek/pop from top, size, 和is empty操作是合法的。 你所使用的语言也许不支持栈。你可以使用list或者deque(双端队列)来模拟一个栈,只要是标准的栈操作即可。

示例 1:

1
2
3
4
5
6
7
8
9
10
11
12
13
输入:
["MyQueue", "push", "push", "peek", "pop", "empty"]
[[], [1], [2], [], [], []]
输出:
[null, null, null, 1, 1, false]

解释:
MyQueue myQueue = new MyQueue();
myQueue.push(1); // queue is: [1]
myQueue.push(2); // queue is: [1, 2] (leftmost is front of the queue)
myQueue.peek(); // return 1
myQueue.pop(); // return 1, queue is [2]
myQueue.empty(); // return false

提示:

  • 1 <= x <= 9
  • 最多调用\(100\)\(\texttt{push}\)\(\texttt{pop}\)\(\texttt{peek}\)\(\texttt{empty}\) 假设所有操作都是有效的 (例如,一个空的队列不会调用\(\texttt{pop}\)或者\(\texttt{peek}\)操作)

进阶:

你能否实现每个操作均摊时间复杂度为 \(O(1)\) 的队列?换句话说,执行 \(n\) 个操作的总时间复杂度为 \(O(n)\),即使其中一个操作可能花费较长时间。


之前我们已经实现了 225. 用队列实现栈 ,今天我们来学习如何用队列来实现栈。

因为队列是FIFO,而栈是LIFO,所以我们需要用到两个栈,用其中一个来反转元素的入队顺序,而另一个则用来存储元素的最终顺序。

2个栈 (push - O(n), pop - O(1))

使用 \(2\) 个栈 \(\textit{stack}_1\)\(\textit{stack}_2\)\(\textit{stack}_1\) 作为主栈,而 \(\textit{stack}_2\) 是辅助栈。

入栈时:

  1. \(\textit{stack}_1\) 中所有的元素移到 \(\textit{stack}_2\) 中;
  2. \(\textit{stack}_2\) 中压入新元素;
  3. \(\textit{stack}_2\) 中所有的元素弹出,再把弹出的元素压入 \(\textit{stack}_1\)

代码如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
class MyQueue {
Stack<Integer> stack1;
Stack<Integer> stack2;

public MyQueue() {
stack1 = new Stack<>();
stack2 = new Stack<>();
}

public void push(int x) {
if (stack1.empty()) {
stack1.push(x);
return;
}

while (!stack1.empty()) {
stack2.push(stack1.pop());
}
stack2.push(x);
while (!stack2.empty()) {
stack1.push(stack2.pop());
}
}

public int pop() {
return stack1.pop();
}

public int peek() {
return stack1.peek();
}

public boolean empty() {
return stack1.empty() && stack2.empty();
}
}
阅读全文 »

By Long Luo

Leetcode 225. 用队列实现栈 ,难度为Easy


  1. 用队列实现栈

请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(\(\texttt{push}\)\(\texttt{top}\)\(\texttt{pop}\)\(\texttt{empty}\))。

实现 \(\texttt{MyStack}\) 类:

  • \(\texttt{void push(int x)}\) 将元素 \(\textit{x}\) 压入栈顶。
  • \(\texttt{int pop()}\) 移除并返回栈顶元素。
  • \(\texttt{int top()}\) 返回栈顶元素。
  • \(\texttt{boolean empty()}\) 如果栈是空的,返回 \(\textit{true}\);否则,返回 \(\textit{false}\)

注意: - 你只能使用队列的基本操作 —— 也就是push to backpeek/pop from frontsizeis empty这些操作。 - 你所使用的语言也许不支持队列。 你可以使用list(列表)或者deque(双端队列)来模拟一个队列 , 只要是标准的队列操作即可。

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
输入:
["MyStack", "push", "push", "top", "pop", "empty"]
[[], [1], [2], [], [], []]
输出:
[null, null, null, 2, 2, false]

解释:
MyStack myStack = new MyStack();
myStack.push(1);
myStack.push(2);
myStack.top(); // 返回 2
myStack.pop(); // 返回 2
myStack.empty(); // 返回 False

提示: - 1 <= x <= 9 - 最多调用 \(100\)\(\texttt{push}\)\(\texttt{pop}\)\(\texttt{top}\)\(\texttt{empty}\) - 每次调用 \(\texttt{pop}\)\(\texttt{top}\) 都保证栈不为空

进阶:你能否仅用一个队列来实现栈。


这道题考察的是队列两种数据结构知识。

栈是一种后进先出(LIFO)的数据结构,元素从顶端入栈,然后从顶端出栈。

队列是一种先进先出(FIFO)的数据结构,元素从后端入队,然后从前端出队。

2个队列

题目的要求是用 \(2\) 个队列实现一个栈,但是把一个队列中的数据导入另一个队列中,数据的顺序并没有发生改变,并不会变成先进后出的顺序。

那该如何做呢?

\(2\) 个队列 \(\textit{queue}_1\)\(\textit{queue}_2\)

  1. \(1\) 个元素 \(\textit{A}\),那非常简单,直接压入弹出即可;
  2. \(2\) 个元素 \(\textit{A}\)\(\textit{B}\)\(\textit{queue}_1\) 压入 \(A\)\(\textit{queue}_2\) 压入 \(B\),然后将 \(\textit{queue}_1\) 中元素压入 \(\textit{queue}_2\),这样 \(\textit{queue}_2\) 中的元素顺序就是正确的;
  3. 因为 \(\textit{queue}_1\) 是主队列,所以还需要将 \(\textit{queue}_2\) 中元素重新导入到 \(\textit{queue}_1\)

代码如下所示:

阅读全文 »

By LongLuo

面试时,经常会遇到一道题,说说HTTPS的实现。

为什么需要加密?

HTTPS是为了满足哪些需求?

HTTP的缺点:

  • 通信使用明文(不加密),内容可能会被窃听;
  • 不验证通信方的身份,因此有可能遭遇伪装(中间人攻击);
  • 无法证明报文的完整性,所以有可能已遭篡改。

如何设计HTTPS?

兼容性

因为是先有HTTP再有HTTPS。所以HTTPS首先要考虑到对原有HTTP的兼容性。

兼容性包括多方面,比如已有的Web应用要尽可能无缝地迁移到HTTPS;比如对浏览器厂商而言,改动要尽可能小;……

基于“兼容性”方面的考虑,很容易得出如下几个结论:

  1. HTTPS还是要基于TCP来传输(如果改为UDP作传输层,无论是Web服务端还是浏览器客户端,都要大改——动静太大,伤筋动骨)

  2. 单独使用一个新的协议,把HTTP协议包裹起来(所谓的“HTTP over SSL”,实际上是在原有的HTTP数据外面加了一层SSL的封装。HTTP协议原有的GET、POST之类的机制,基本上原封不动)

打个比方:如果原来的HTTP是塑料水管,容易被戳破;那么如今新设计的HTTPS就像是在原有的塑料水管之外,再包一层金属水管。一来,原有的塑料水管照样运行;二来,用金属加固了之后,不容易被戳破。

可扩展性

前面说了,HTTPS 相当于是“HTTP over SSL”。

如果SSL这个协议在“可扩展性”方面的设计足够牛逼,那么它除了能跟HTTP搭配,还能够跟其它的应用层协议搭配。岂不美哉?

现在看来,当初设计SSL的人确实比较牛。如今的SSL/TLS可以跟很多常用的应用层协议(比如:FTP、SMTP、POP、Telnet)搭配,来强化这些应用层协议的安全性。

接着刚才打的比方:如果把SSL/TLS视作一根用来加固的金属管,它不仅可以用来加固输水的管道,还可以用来加固输煤气的管道。

阅读全文 »

By LongLuo

2021.05.09这一天是母亲节,想起曾读过留下很深印象的几篇关于母亲的文章,这些文章都在我读中学时在课外读物上读过的,但目前为此都还留下了深刻的印象。记得当时读完心里感觉酸酸的,眼泪在眼眶里打转,又是羞愧又是庆幸自己还有机会去报答爸妈的恩情。

今天花了点时间把它们都找出来,常读常新!


毕淑敏:孝心无价

我不喜欢一个苦孩子求学的故事。家庭十分困难,父亲逝去,弟妹嗷嗷待哺,可他大学毕业后,还要坚持读研究生,母亲只有去卖血……我以为那是一个自私的学子。求学的路很漫长,一生一世的事业,何必太在意几年蹉跎?况且这时间的分分秒秒都苦涩无比,需用母亲的鲜血灌溉!一个连母亲都无法挚爱的人,还能指望他会爱谁?把自己的利益放在至高无上位置的人,怎能成为为人类奉献的大师?

我也不喜欢父母重病在床,断然离去的游子,无论你有多少理由。地球离了谁都照样转动,不必将个人的力量夸大到不可思议的程度。在一位老人行将就木的时候,将他对人世间最后期冀的希望斩断,以绝望之心在寂寞中远行,那是对生命的大不敬。

我相信每个赤诚忠厚的孩子,都曾在心底向父母许下“孝”的宏愿,相信来日方长,相信水到渠成,相信自己必有功成名就衣锦还乡的那一天,可以从容尽孝。可惜人们忘了,忘了时间的残酷,忘了人生的短暂,忘了世上有永远无法报答的恩情,忘了生命本身有不堪一击的脆弱。

父母走了,带着对我们深深的挂念。父母走了,遗留给我们永无偿还的心情。你就永远无以言孝。

有一些事情,当我们年轻的时候,无法懂得。当我们懂得的时候,已不再年轻。世上有些东西可以弥补,有些东西永无弥补…… “孝”是稍纵即逝的眷恋,“孝”是无法重现的幸福。“孝”是一失足成千古恨的往事,“孝”是生命与生命交接处的链条,一旦断裂,永无连接。

赶快为你的父母尽一份孝心。也许是一处豪宅,也许是一片砖瓦。也许是大洋彼岸的一只鸿雁,也许是近在咫尺的一个口信。也许是一顶纯黑的博士帽,也许是作业簿上的一个红五分。也许是一桌山珍海味,也许是一个野果一朵小花。也许是花团锦簇的盛世华衣,也许是一双洁净的旧鞋。也许是数亿万计的金钱,也许只是含着体温的一枚硬币……但“孝”的天平上,它们等值。

只是,天下的儿女们,一定要抓紧啊!趁我们父母健在的光阴。


老舍: 我的母亲

母亲的娘家是北平德胜门外,土城儿外边,通大钟寺的大路上的一个小村里。村里一共有四五家人家,都姓马。大家都种点不十分肥美的地,但是与我同辈的兄弟们,也有当兵的,作木匠的,作泥水匠的,和当巡察的。他们虽然是农家,却养不起牛马,人手不够的时候,妇女便也须下地作活。

对于姥姥家,我只知道上述的一点。外公外婆是什么样子,我就不知道了,因为他们早已去世。至于更远的族系与家史,就更不晓得了;穷人只能顾眼前的衣食,没有功夫谈论什么过去的光荣;“家谱”这字眼,我在幼年就根本没有听说过。

母亲生在农家,所以勤俭诚实,身体也好。这一点事实却极重要,因为假若我没有这样的一位母亲,我以为我恐怕也就要大大的打个折扣了。

母亲出嫁大概是很早,因为我的大姐现在已是六十多岁的老太婆,而我的大外甥女还长我一岁啊。我有三个哥哥,四个姐姐,但能长大成人的,只有大姐,二姐,三姐,三哥与我。我是“老”儿子。生我的时候,母亲已有四十一岁,大姐二姐已都出了阁。

由大姐与二姐所嫁入的家庭来推断,在我生下之前,我的家里,大概还马马虎虎的过得去。那时候定婚讲究门当户对,而大姐丈是作小官的,二姐丈也开过一间酒馆,他们都是相当体面的人。

可是,我,我给家庭带来了不幸:我生下来,母亲晕过去半夜,才睁眼看见她的老儿子——感谢大姐,把我揣在怀中,致未冻死。

一岁半,我把父亲“克”死了。

兄不到十岁,三姐十二三岁,我才一岁半,全仗母亲独力抚养了。父亲的寡姐跟我们一块儿住,她吸鸦片,她喜摸纸牌,她的脾气极坏。为我们的衣食,母亲要给人家洗衣服,缝补或裁缝衣裳。在我的记忆中,她的手终年是鲜红微肿的。白天,她洗衣服,洗一两大绿瓦盆。她作事永远丝毫也不敷衍,就是屠户们送来的黑如铁的布袜,她也给洗得雪白。晚间,她与三姐抱着一盏油灯,还要缝补衣服,一直到半夜。她终年没有休息,可是在忙碌中她还把院子屋中收拾得清清爽爽。桌椅都是旧的,柜门的铜活久已残缺不全,可是她的手老使破桌面上没有尘土,残破的铜活发着光。院中,父亲遗留下的几盆石榴与夹竹桃,永远会得到应有的浇灌与爱护,年年夏天开许多花。

哥哥似乎没有同我玩耍过。有时候,他去读书;有时候,他去学徒;有时候,他也去卖花生或樱桃之类的小东西。母亲含着泪把他送走,不到两天,又含着泪接他回来。我不明白这都是什么事,而只觉得与他很生疏。与母亲相依为命的是我与三姐。因此,她们作事,我老在后面跟着。她们浇花,我也张罗着取水;她们扫地,我就撮土……从这里,我学得了爱花,爱清洁,守秩序。这些习惯至今还被我保存着。

有客人来,无论手中怎么窘,母亲也要设法弄一点东西去款待。舅父与表哥们往往是自己掏钱买酒肉食,这使她脸上羞得飞红,可是殷勤的给他们温酒作面,又给她一些喜悦。遇上亲友家中有喜丧事,母亲必把大褂洗得干干净净,亲自去贺吊——份礼也许只是两吊小钱。到如今如我的好客的习性,还未全改,尽管生活是这么清苦,因为自幼儿看惯了的事情是不易改掉的。

姑母常闹脾气。她单在鸡蛋里找骨头。她是我家中的阎王。直到我入了中学,她才死去,我可是没有看见母亲反抗过。“没受过婆婆的气,还不受大姑子的吗?命当如此!”母亲在非解释一下不足以平服别人的时候,才这样说。是的,命当如此。母亲活到老,穷到老,辛苦到老,全是命当如此。她最会吃亏。给亲友邻居帮忙,她总跑在前面:她会给婴儿洗三——穷朋友们可以因此少花一笔“请姥姥”钱——她会刮痧,她会给孩子们剃头,她会给少妇们绞脸……凡是她能作的,都有求必应。但是吵嘴打架,永远没有她。她宁吃亏,不逗气。当姑母死去的时候,母亲似乎把一世的委屈都哭了出来,一直哭到坟地。不知道哪里来的一位侄子,声称有承继权,母亲便一声不响,教他搬走那些破桌子烂板凳,而且把姑母养的一只肥母鸡也送给他。

可是,母亲并不软弱。父亲死在庚子闹“拳”的那一年。联军入城,挨家搜索财物鸡鸭,我们被搜两次。母亲拉着哥哥与三姐坐在墙根,等着“鬼子”进门,街门是开着的。“鬼子”进门,一刺刀先把老黄狗刺死,而后入室搜索。他们走后,母亲把破衣箱搬起,才发现了我。假若箱子不空,我早就被压死了。皇上跑了,丈夫死了,鬼子来了,满城是血光火焰,可是母亲不怕,她要在刺刀下,饥荒中,保护着儿女。北平有多少变乱啊,有时候兵变了,街市整条的烧起,火团落在我们院中。有时候内战了,城门紧闭,铺店关门,昼夜响着枪炮。这惊恐,这紧张,再加上一家饮食的筹划,儿女安全的顾虑,岂是一个软弱的老寡妇所能受得起的?可是,在这种时候,母亲的心横起来,她不慌不哭,要从无办法中想出办法来。她的泪会往心中落!这点软而硬的个性,也传给了我。我对一切人与事,都取和平的态度,把吃亏看作当然的。但是,在作人上,我有一定的宗旨与基本的法则,什么事都可将就,而不能超过自己划好的界限。我怕见生人,怕办杂事,怕出头露面;但是到了非我去不可的时候,我便不得不去,正象我的母亲。从私塾到小学,到中学,我经历过起码有廿位教师吧,其中有给我很大影响的,也有毫无影响的,但是我的真正的教师,把性格传给我的,是我的母亲。母亲并不识字,她给我的是生命的教育。

当我在小学毕了业的时候,亲友一致的愿意我去学手艺,好帮助母亲。我晓得我应当去找饭吃,以减轻母亲的勤劳困苦。可是,我也愿意升学。我偷偷的考入了师范学校——制服,饭食,书籍,宿处,都由学校供给。只有这样,我才敢对母亲提升学的话。入学,要交十元的保证金。这是一笔巨款!母亲作了半个月的难,把这巨款筹到,而后含泪把我送出门去。她不辞劳苦,只要儿子有出息。当我由师范毕业,而被派为小学校校长,母亲与我都一夜不曾合眼。我只说了句:“以后,您可以歇一歇了!”她的回答只有一串串的眼泪。我入学之后,三姐结了婚。母亲对儿女是都一样疼爱的,但是假若她也有点偏爱的话,她应当偏爱三姐,因为自父亲死后,家中一切的事情都是母亲和三姐共同撑持的。三姐是母亲的右手。但是母亲知道这右手必须割去,她不能为自己的便利而耽误了女儿的青春。当花轿来到我们的破门外的时候,母亲的手就和冰一样的凉,脸上没有血色–那是阴历四月,天气很暖。大家都怕她晕过去。可是,她挣扎着,咬着嘴唇,手扶着门框,看花轿徐徐的走去。不久,姑母死了。三姐已出嫁,哥哥不在家,我又住学校,家中只剩母亲自己。她还须自晓至晚的操作,可是终日没人和她说一句话。新年到了,正赶上政府倡用阳历,不许过旧年。除夕,我请了两小时的假。由拥挤不堪的街市回到清炉冷灶的家中。母亲笑了。及至听说我还须回校,她楞住了。半天,她才叹出一口气来。到我该走的时候,她递给我一些花生,“去吧,小子!”街上是那么热闹,我却什么也没看见,泪遮迷了我的眼。今天,泪又遮住了我的眼,又想起当日孤独的过那凄惨的除夕的慈母。可是慈母不会再候盼着我了,她已入了土!

儿女的生命是不依顺着父母所设下的轨道一直前进的,所以老人总免不了伤心。我廿三岁,母亲要我结了婚,我不要。我请来三姐给我说情,老母含泪点了头。我爱母亲,但是我给了她最大的打击。时代使我成为逆子。廿七岁,我上了英国。为了自己,我给六十多岁的老母以第二次打击。在她七十大寿的那一天,我还远在异域。那天,据姐姐们后来告诉我,老太太只喝了两口酒,很早的便睡下。她想念她的幼子,而不便说出来。

七七抗战后,我由济南逃出来。北平又象庚子那年似的被鬼子占据了,可是母亲日夜惦念的幼子却跑西南来。母亲怎样想念我,我可以想象得到,可是我不能回去。每逢接到家信,我总不敢马上拆看,我怕,怕,怕,怕有那不祥的消息。人,即使活到八九十岁,有母亲便可以多少还有点孩子气。失了慈母便像花插在瓶子里,虽然还有色有香,却失去了根。有母亲的人,心里是安定的。我怕,怕,怕家信中带来不好的消息,告诉我已是失了根的花草。

去年一年,我在家信中找不到关于老母的起居情况。我疑虑,害怕。我想象得到,如有不幸,家中念我流亡孤苦,或不忍相告。母亲的生日是在九月,我在八月半写去祝寿的信,算计着会在寿日之前到达。信中嘱咐千万把寿日的详情写来,使我不再疑虑。十二月二十六日,由文化劳军的大会上回来,我接到家信。我不敢拆读。就寝前,我拆开信,母亲已去世一年了!

生命是母亲给我的。我之能长大成人,是母亲的血汗灌养的。我之所以能成为一个不十分坏的人,是母亲感化的。我的性格,习惯,是母亲传给的。她一世未曾享过一天福,临死还吃的是粗粮。唉!还说什么呢?心痛!心痛!


阅读全文 »

By Long Luo

五一假期期间累计花了10几个小时阅读完了阎学通在2013年写的著作《历史的惯性:未来十年的中国与世界》,看完大受启发,尤其是标题,让我有豁然开朗的感觉。

中国有句古话叫“三岁看大”,当然这是说性格决定命运,因为性格很难改,所以从一个人小时候表露出来的性格就能推断出其人生的大致轨迹。

杜牧的《阿房宫赋》中“秦人不暇自哀,而后人哀之;后人哀之而不鉴之,亦使后人而复哀后人也。”,德国哲学家黑格尔也曾说,人类唯一能从历史中吸取的教训就是,人类从来都不会从历史中吸取教训。纵观世界人类发展史,发现无论朝代更迭、经济发展等活动都在不断的重复过去。

“历史总会惊人的相似,但又不会简单的重复”,如何解释历史的这种相似性,又如何解释某些相似的前提最后却导致了不同的结果呢?

答案就是惯性。政治领导人们都会尝试用最大的理性思考和处理问题,但与此同时又会习惯性的陷入某种惯性之中。就像一个贪吃的胖子,虽然他现在体重只有160斤,但是根据大量相似的经验预测,他未来的体重将会达到200斤左右,这种结果可能性很大,因为这个胖子会习惯性地过量摄入食物,并且很难克制这种贪吃的欲望,但是也不排除这个胖子意识到了贪吃的坏处,成功地把体重保持在了160斤的恒定水平,对未来的判断往往就处在这样的不确定性之中。

预测一个人如此,预测一个国家也是如此,只不过按照质量越大惯性越大的原理,一个国家历史越悠久,体积越庞大,传统的力量和制度越成熟,这个国家未来的发展路径就越容易陷入到历史的惯性之中

下面是书中一些精华摘录:


第一章 国力较量:2023年的中国与美国

历史是由人创造的,但这并不意味着人有能力任意改变历史。历史发展具有一定的惯性,在人没有创造出强于历史惯性的力量之前,历史将沿着既有的轨道发展。这就是为什么当一个帝国或超级大国衰落后,其衰落时间都在百年以上,很少有在半个世纪内就重振雄风的现象。大清帝国、大英帝国、俄罗斯的衰落都摆脱不了这种历史惯性。21世纪的美国人是否有能力顶住历史的惯性,不让美国长期衰落下去,这是美国人面临的历史考验。未来十年,历史的惯性有利于中国的崛起,中国能否借助这个惯性加速崛起则取决于我们这代中国人了。

国际格局是随着大国综合实力的变化而变化的,而大国综合实力的基础是国家的政治实力,而政治实力的核心是领导者实施改革的能力。不同的历史使得国家领导者的改革能力有天壤之别,因此历史的惯性有时才会出现加速的现象,这也是为什么历史上常有只凭一代人就完成崛起的例子。

经济决定论是现在中国人的主流信仰,然而中国先哲们却相信政治决定论,他们认为决定国家富强或衰落的最根本因素是国家的政治领导而不是经济基础。

许多人认为,中国能否崛起不在于外交而在于内政,因此应集中精力关注国内建设而少介入国际事务。内政不仅是中国崛起的根本,也是美国维护世界霸权的根本。然而,能搞好内政的国家并不一定就能崛起为超级大国,北欧国家便是最好的例证。

那么,中美两国综合实力的差距在过去的20多年里是如何缩小的呢?其根本原因在于中国不断进行改革而美国没有什么改革。未来十年,这种状态将难以改变,中国的改革力度仍将大于美国。这也是为什么2023年有可能形成中美两超的国际格局。

对于中国无法保持第四个十年经济高增长的判断之所以错误,是因为预测者的两个依据是不科学的。首先,“物极必反”是个哲学原理而不是科学依据。以此哲学原理为据预测中国经济不可能永远高增长是有效的,但是人们忽视了哲学原理的正确性是建立在没有科学标准的前提下的,即“极”(极限)是一个没有具体标准的概念。

未来十年,中国综合国力能否保持高速增长主要取决于中国政府是否加大改革力度。只要中国政府的新领导集体像1978年那样实行全面改革,中国综合国力是有望再保持十年高增长的,而且有可能再为其后的十年实现年均5%左右的稳定增长奠定基础。

自1978年以来,中国改革开放的内容是多方面的,但其本质是政府将社会生活的权利归还给人民。

借用中国古代哲学的观点,本书把世界权力的转移归因于崛起国比主导国更有能力进行改革。在国内方面,一国的领导类型可分为无为型、守成型、进取型和争斗型,而在国际领导类型方面则可分为王道型、霸权型、昏庸型和强权型。将政治领导类型视为一个独立变量的优势在于,我们可以用同一个变量来解释为什么在同一历史阶段,主导国会衰落,某个国家的崛起会成功,而其他国家的崛起会失败。国家领导是决定国家外交政策、政治原则、官方意识形态和政治制度的关键因素,而不同类型的领导人对改革和战略取向有着各自的态度。

如上所述,大多数理论都在研究如何回答“为什么霸权会衰落”的问题,几乎不考虑问题的另一面:“一个国家如何成功崛起?”似乎有理由断言,世界中心的转移,不仅仅是因为现有的霸权衰落,同时也是因为新的世界大国崛起。

本书所建立的理论表明,当崛起国的政治领导力强于主导国的政治领导力时,这两个国家的权力地位就可能反转,崛起国将成为新的主导国。换句话说,当崛起国的领导力比主导国和其同时代主要国家的领导力更强且更高效时,所有这些国家的国际权力将以崛起国胜过主导国的方式被重新划分

笔者认为,未来十年在美国无力阻止中国缩小实力差距的决定性因素中,最主要的是美国缺乏具有政治改革能力的领导人。里根、老布什、小布什和奥巴马执政时期,都是美国债务不断上升的时期,然而克林顿执政8年不但还清了以往政府欠的债,而且还给美国财政积累了2000多亿美元的盈余。这意味着,未来十年,美国能否解决债务问题不是由市场决定的,而是由美国领导人的领导能力,特别是领导人推进政治改革的能力决定的。政治改革对中国和美国的实力增长具有相同的作用,哪个国家改革得快,哪个国家就能赢得未来十年的战略竞争,反之则走向相对衰落。

能领导美国进行改革的领导人不仅要有与利益集团对抗的精神,还得有克服利益集团阻力的能力。这种能力往往是通过政治实践获得的,而不是靠在选举中打嘴仗练出来的。电子媒体技术的进步和晚婚趋势使美国选民选择领导人的标准发生了变化,但是美国大选的民主程序却没有做出相应的调整。

现实生活中,务实者多不善言辞,能言善辩者多不务实,同时具备这两种能力的人少之又少。

历史上,许多一度辉煌的帝国都走向了衰落,其具体原因可能各有不同,但因自负而不愿进行根本性改革很可能是个共同原因,而且是一个所有成功者都无法克服的人性缺陷。

未来十年,美国虽无力阻止中国缩小与其实力的差距,但它必然会竭力减缓中国赶超的速度。一国的综合实力由政治、军事、经济和文化四个实力要素构成。其中,政治为操作性实力,军事、经济和文化为资源性实力。操作性实力对于资源性实力的运用结果决定了综合实力的大小,其表达式为: 政治实力×(军事实力+经济实力+文化实力)=综合国力。

不过,数量上的超越为质量上的赶超奠定了基础,假如没有数量上的超越,质量超越就更无希望。

美国减缓中国赶超速度的根本因素是其相对衰落的性质。

做好自己家里的事,是所有国家的首要任务。但是,做好自己家里的事并不必然就能实现崛起,甚至不必然就能强大。

认为中国的国内问题决定中国成不了超级大国和认为只要国内搞好了就能成为超级大国,这两种观点的核心逻辑都是内因决定论。然而,大国崛起或民族复兴是一个相对概念,是指赶超世界最强大国家的历史过程,其结果是由崛起国和霸权国两者力量的对比变化决定的。这意味着,内因和外因具有同等重要的作用。

未来十年,中美军事竞争将体现在武器装备的改进上,而双方发生直接战争的危险会进一步下降,发动代理人战争的可能性也很小。 未来十年,科技竞争取代自然资源争夺将成为中美战略竞争的主要内容之一。 未来十年,中美之间的结构性矛盾将不断深化,在双方继续假朋友关系策略的条件下,双边关系的不稳定性将变得更加突出。 2023年世界很可能形成两极格局,但那是一种新型战略竞争而不是冷战,未来十年中美成为全面竞争对手的可能性很大。

美国重返亚太战略是促进中国调整外交战略的首要外部因素。美国的相对衰落使其无力维持在全球的主导地位,故此美国将其主要力量集中于未来的世界中心,于是美国战略重心向东亚转移就成为必然(参见第二章有关东亚将成为新的世界中心的论述)。所谓“亚太再平衡”就是平衡中国的崛起,就是防范中国成为亚太地区的主导力量。

由于未来十年世界格局向两极化方向发展,因此发展中国家将重新重视不结盟战略,这将是一个影响中国外交政策调整的重要因素。

在无政府的国际体系中,中小国家对于大国的首要需求是安全保障,能否向中小国家提供安全保障将成为中美争取不结盟国家的最主要手段。不提供安全保障就无法得到这些国家的战略信任,从而也不可能获得较多的战略友好关系。

核武器将使中美之间的战略竞争以和平方式为主。

核武器不仅消除了“二战”后再次发生世界大战的危险,也防止了美苏之间的直接战争。苏联解体后,美国加快了反导系统的建设速度,然而20年反导系统建设的结果是,反导系统并不能有效减弱核武器的战略威慑能力。

冷战后,人们对于核武器可防止核国家之间发生战争的认识进一步深化,这在很大程度上改变了大国竞争的战略行为。中美更加注重提高核武器与常规武器的现代化水平,但放弃了赢得核战争的想法,认为以战争争夺霸权的成本太高。核武器的扩散使得代理人战争升级为全面战争的代价增大,因此也使代理人战争变得不那么可取,中美也不愿承担通过代理人战争争夺领导权的代价。

冷战后,由于计算机技术的迅速进步,科技成为增加经济财富的重要手段。这使得自然资源在增加国家财富方面的重要性大大下降,中美再也不必用战争方式来争夺自然资源了。

进入21世纪,人类面临的最大问题已不再是生产能力满足不了社会消费需求,而是严重的产能过剩,即人类无力消费自己生产出来的产品。不仅如此,从争夺国际自然资源的效率角度讲,战争也是无法与海外投资相比的。

阅读全文 »
0%