0%

题目

Given a non-empty integer array of size n, find the minimum number of moves required to make all array elements equal, where a move is incrementing n - 1 elements by 1.

Example:

1
2
3
4
5
6
7
8
9
10
Input:
[1,2,3]

Output:
3

Explanation:
Only three moves are needed (remember each move increments two elements):

[1,2,3] => [2,3,3] => [3,4,3] => [4,4,4]

难度

Easy

方法

这是一个数学题,假设数组中最小的数为min,需要移动x次,最后数组中的数都为m,则其实是一个求x的方法

1
2
3
4
5
6
(n - 1) * x + sum = n * m
min + x = m
nx - x + sum = n * (min + x)
nx - x + sum = n * min + nx
sum - x = n * min
x = sum - n * min

python代码

1
2
3
4
5
6
7
8
9
10
11
class Solution(object):
def minMoves(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
nums = sorted(nums)
return sum(nums) - len(nums) * nums[0]

assert Solution().minMoves([1,2,3]) == 3
assert Solution().minMoves([1,1,3]) == 2

题目

Given a non-empty binary tree, return the average value of the nodes on each level in the form of an array.

Example 1:

1
2
3
4
5
6
7
8
9
10
Input:
3
/ \
9 20
/ \
15 7
Output: [3, 14.5, 11]
Explanation:
The average value of nodes on level 0 is 3, on level 1 is 14.5, and on level 2 is 11.
Hence return [3, 14.5, 11].

Note:

  1. The range of node’s value is in the range of 32-bit signed integer.
难度

Easy

方法

对二叉树进行深度遍历,将深度level作为参数传递,记录每一级的sum和个数n,最后将sum/n保存到结果列表中即可

python代码
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
37
38
39
40
41
42
class TreeNode(object):
def __init__(self, x):
self.val = x
self.left = None
self.right = None

class Solution(object):
def averageOfLevels(self, root):
"""
:type root: TreeNode
:rtype: List[float]
"""
sums = []
nums = []
def dfs(node, level):
if node:
if len(sums) <= level:
sums.append(0)
nums.append(0)

sums[level] += node.val
nums[level] += 1

dfs(node.left, level+1)
dfs(node.right, level+1)

dfs(root, 0)

result = []
for i in range(len(sums)):
result.append(sums[i]/float(nums[i]))

return result


root = TreeNode(3)
root.left = TreeNode(9)
root.right = TreeNode(20)
root.right.left = TreeNode(15)
root.right.right = TreeNode(7)

assert Solution().averageOfLevels(root) == [3, 14.5, 11]

题目

X city opened a new cinema, many people would like to go to this cinema. The cinema also gives out a poster indicating the movies’ ratings and descriptions.

Please write a SQL query to output movies with an odd numbered ID and a description that is not ‘boring’. Order the result by rating.

For example, table cinema:

1
2
3
4
5
6
7
8
9
+---------+-----------+--------------+-----------+
| id | movie | description | rating |
+---------+-----------+--------------+-----------+
| 1 | War | great 3D | 8.9 |
| 2 | Science | fiction | 8.5 |
| 3 | irish | boring | 6.2 |
| 4 | Ice song | Fantacy | 8.6 |
| 5 | House card| Interesting| 9.1 |
+---------+-----------+--------------+-----------+

For the example above, the output should be:

1
2
3
4
5
6
+---------+-----------+--------------+-----------+
| id | movie | description | rating |
+---------+-----------+--------------+-----------+
| 5 | House card| Interesting| 9.1 |
| 1 | War | great 3D | 8.9 |
+---------+-----------+--------------+-----------+
难度

Easy

sql
1
2
# Write your MySQL query statement below
select * from cinema where id%2 and description != 'boring' order by rating desc;

题目

Given a table salary, such as the one below, that has m=male and f=female values. Swap all f and m values (i.e., change all f values to m and vice versa) with a single update query and no intermediate temp table.

For example:

1
2
3
4
5
6
| id | name | sex | salary |
|----|------|-----|--------|
| 1 | A | m | 2500 |
| 2 | B | f | 1500 |
| 3 | C | m | 5500 |
| 4 | D | f | 500 |

After running your query, the above salary table should have the following rows:

1
2
3
4
5
6
| id | name | sex | salary |
|----|------|-----|--------|
| 1 | A | f | 2500 |
| 2 | B | m | 1500 |
| 3 | C | f | 5500 |
| 4 | D | m | 500 |
难度

Easy

方法

需要用到sql里的if

sql
1
2
# Write your MySQL query statement below
update salary set sex = if(sex='m', 'f', 'm')

题目

Given two binary trees and imagine that when you put one of them to cover the other, some nodes of the two trees are overlapped while the others are not.

You need to merge them into a new binary tree. The merge rule is that if two nodes overlap, then sum node values up as the new value of the merged node. Otherwise, the NOT null node will be used as the node of new tree.

Example 1:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Input: 
Tree 1 Tree 2
1 2
/ \ / \
3 2 1 3
/ \ \
5 4 7
Output:
Merged tree:
3
/ \
4 5
/ \ \
5 4 7
方法

采用递归的方法。假设有2个根节点t1,t2,用t1保存最后的合并结果。如果t1t2都不为空,则t1.val = t1.val+t2.val,递归调用赋值t1.left = mergeTrees(t1.left, t2.left)t1.right = mergeTrees(t1.right, t2.right); 如果t1为空,t2不为空,则t1 = t2,最后返回t1节点

难度

Easy

python代码
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
37
38
39
# Definition for a binary tree node.
class TreeNode(object):
def __init__(self, x):
self.val = x
self.left = None
self.right = None

class Solution(object):
def mergeTrees(self, t1, t2):
"""
:type t1: TreeNode
:type t2: TreeNode
:rtype: TreeNode
"""
if t1 and t2:
t1.val += t2.val
t1.left = self.mergeTrees(t1.left, t2.left)
t1.right = self.mergeTrees(t1.right, t2.right)
elif t2:
t1 = t2

return t1

root1 = TreeNode(1)
left1 = TreeNode(3)
right1 = TreeNode(2)
root1.left = left1
root1.right = right1

root2 = TreeNode(2)
left2 = TreeNode(1)
right2 = TreeNode(3)
root2.left = left2
root2.right = right2

root = Solution().mergeTrees(root1, root2)
assert root.val == 3
assert root.left.val == 4
assert root.right.val == 5

题目

There is a table World

1
2
3
4
5
6
7
8
9
+-----------------+------------+------------+--------------+---------------+
| name | continent | area | population | gdp |
+-----------------+------------+------------+--------------+---------------+
| Afghanistan | Asia | 652230 | 25500100 | 20343000 |
| Albania | Europe | 28748 | 2831741 | 12960000 |
| Algeria | Africa | 2381741 | 37100000 | 188681000 |
| Andorra | Europe | 468 | 78115 | 3712000 |
| Angola | Africa | 1246700 | 20609294 | 100990000 |
+-----------------+------------+------------+--------------+---------------+

A country is big if it has an area of bigger than 3 million square km or a population of more than 25 million.

Write a SQL solution to output big countries’ name, population and area.

For example, according to the above table, we should output:

1
2
3
4
5
6
+--------------+-------------+--------------+
| name | population | area |
+--------------+-------------+--------------+
| Afghanistan | 25500100 | 652230 |
| Algeria | 37100000 | 2381741 |
+--------------+-------------+--------------+
难度

Easy

方法

没想到LeetCode有这么简单的题,直接写sql即可

sql
1
2
# Write your MySQL query statement below
select name, population, area from world where area > 3000000 or population > 25000000;

题目

Suppose Andy and Doris want to choose a restaurant for dinner, and they both have a list of favorite restaurants represented by strings.

You need to help them find out their common interest with the least list index sum. If there is a choice tie between answers, output all of them with no order requirement. You could assume there always exists an answer.

Example 1:

1
2
3
4
5
Input:
["Shogun", "Tapioca Express", "Burger King", "KFC"]
["Piatti", "The Grill at Torrey Pines", "Hungry Hunter Steakhouse", "Shogun"]
Output: ["Shogun"]
Explanation: The only restaurant they both like is "Shogun".

Example 2:

1
2
3
4
5
Input:
["Shogun", "Tapioca Express", "Burger King", "KFC"]
["KFC", "Shogun", "Burger King"]
Output: ["Shogun"]
Explanation: The restaurant they both like and have the least index sum is "Shogun" with index sum 1 (0+1).

Note:

  1. The length of both lists will be in the range of [1, 1000].
  2. The length of strings in both lists will be in the range of [1, 30].
  3. The index is starting from 0 to the list length minus 1.
  4. No duplicates in both lists.
难度

Easy

方法

minSum保存最小的索引和,用一个dict记录list1中每个单词对应的索引序号。遍历list2,将值存入word中,计算wordlist1list2中的索引和,如果小于minSum,则替换minSum,并清空结果list,加入该word,如果==minSum,则直接加入word

python代码
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
37
import sys

class Solution(object):
def findRestaurant(self, list1, list2):
"""
:type list1: List[str]
:type list2: List[str]
:rtype: List[str]
"""
list1Map = {}
i = 0
for word in list1:
list1Map[word] = i
i += 1

minSum = sys.maxint
i = 0
restaurants = []
for word in list2:
if word in list1Map:
if minSum > list1Map[word]+i:
print minSum
minSum = list1Map[word]+i
restaurants = []
restaurants.append(word)
elif minSum == list1Map[word]+i:
restaurants.append(word)
i += 1

return restaurants

assert Solution().findRestaurant(["Shogun", "Tapioca Express", "Burger King", "KFC"],
["Piatti", "The Grill at Torrey Pines", "Hungry Hunter Steakhouse", "Shogun"]) == ["Shogun"]
assert Solution().findRestaurant(["Shogun", "Tapioca Express", "Burger King", "KFC"],
["KFC", "Shogun", "Burger King"]) == ["Shogun"]
assert Solution().findRestaurant(["Shogun","Tapioca Express","Burger King","KFC"],
["KFC","Burger King","Tapioca Express","Shogun"]) == ["KFC","Burger King","Tapioca Express","Shogun"]

How did Vera discover she had this gift of second sight?

Several cases have been reported in Russia recently of people who can read and detect colours with their fingers, and even see through solid doors and walls. One case concerns an eleven-year-old schoolgirl, Vera Petrova, who has normal vision but who can also perceive things with different parts of her skin, and through solid walls. This ability was first noticed by her father. One day she came into his office and happened to put her hand on the door of a locked safe. Suddenly she asked her father why he kept so many old newspapers locked away there, and even described the way they were done up in bundles.

Vera’s curious talent was brought to the notice of a scientific research institute in the town of Ulyanovsk, near where she lives, and in April she was given a series of tests by a special commission of the Ministry of Health of the Russian Federal Republic. During these tests she was able to read a newspaper through an opaque screen and, stranger still, by moving her elbow over a child’s game of Lotto she was able to describe the figures and colours printed on it; and, in another instance, wearing stockings and slippers, to make out with her foot the outlines and colours of a picture hidden under a carpet. Other experiments showed that her knees and shoulders had a similar sensitivity. During all these tests Vera was blindfold; and, indeed, except when blindfold she lacked the ability to perceive things with her skin. It was also found that although she could perceive things with her fingers this ability ceased the moment her hands were wet.

📖 文章大意

这是一篇关于超自然能力的报道,讲述了俄罗斯11岁女孩维拉·彼得罗娃(Vera Petrova)拥有用皮肤”看见”事物的特殊能力。

🔍 故事梗概

维拉的特殊能力

  • 正常视力 + 皮肤感知能力
  • 可以透过实心墙壁和门”看见”物体
  • 能用身体不同部位(手指、肘部、膝盖、肩膀、脚)感知颜色和形状

能力的发现过程

第一次发现(父亲的办公室):

  • 维拉无意中把手放在父亲办公室的保险柜门上
  • 突然问父亲为什么锁着这么多旧报纸
  • 甚至描述出报纸是如何捆扎的

🔬 科学测试

维拉被带到乌里扬诺夫斯克的科研机构接受测试:

测试项目及结果:

  1. 透过不透明屏幕读报纸
  2. 用肘部感知儿童乐透游戏
    • 能描述印刷的图案和颜色 ✓
  3. 穿着袜子和拖鞋,用脚感知
    • 辨认出地毯下隐藏图片的轮廓和颜色 ✓
  4. 膝盖和肩膀也有类似敏感度

重要条件:

  • ⚠️ 必须蒙眼:不蒙眼时这种能力就消失
  • ⚠️ 手必须干燥:手湿了能力就失效

📝 关键词汇解释

单词 含义 在文中的用法
vision 视力 正常视力
perceive 感知、察觉 用皮肤感知事物
bundles 捆、束 报纸捆扎的方式
institute 研究所 科研机构
Ministry 部(政府部门) 卫生部
opaque 不透明的 不透明的屏幕
slippers 拖鞋 穿着拖鞋测试
carpet 地毯 地毯下藏着图片
blindfold 蒙眼的 测试时必须蒙眼

💡 文章主题

这是一篇科学报道类文章,探讨了:

  • 超感官知觉(ESP)现象
  • 人体潜在的未知能力
  • 科学验证超自然现象的尝试

What was the main objective of early mountain climbers?

Modern alpinist try to climb mountains by a route which will give them good sport, and the more difficult it is, the more highly it is regarded. In the pioneering days, however, this was not the case at all. The early climbers were looking for the easiest way to the top, because the summit was the prize they sought, especially if it had never been attained before. It is true that during their explorations they often faced difficulties and dangers of the most perilous nature, equipped in a manner which would make a modern climber shudder at the thought, but they did not go out of their way to court such excitement. They had a single aim, a solitary goal — the top!

It is hard for us to realize nowadays how difficult it was for the pioneers. Except for one or two places such as Zermatt and Chamonix, which had rapidly become popular, Alpine villages tended to be impoverished settlements cut off from civilization by the high mountains. Such inns as there were generally dirty and flea-ridden; the food simply local cheese accompanied by bread often twelve months old, all washed down with coarse wine. Often a valley boasted no inn at all, and climbers found shelter wherever they could sometimes with the local priest(who was usually as poor as his parishioners), sometimes with shepherds or cheese-makes. Invariably the background was the same: dirt and poverty, and very uncomfortable. For men accustomed to eating seven-course dinners and sleeping between fine linen sheets at home, the change to the Alps must have been very hard indeed.

📖 Lesson 03: Matterhorn Man 深度解析

🎯 文章主旨

What was the main objective of early mountain climbers?

答案:到达顶峰(reaching the summit/top)

早期登山者的唯一目标就是登顶,尤其是征服从未有人到达过的山峰。他们寻找最容易的路线,而不是像现代登山者那样追求高难度挑战。


📝 第一段:登山理念的今昔对比

原文分析

1
2
3
Modern alpinists try to climb mountains by a route which 
will give them good sport, and the more difficult it is,
the more highly it is regarded.

翻译:
现代登山者试图通过能给他们带来良好运动体验的路线攀登山峰,
路线越困难,就越受推崇。

核心观点:现代登山 = 追求挑战

1
2
3
4
5
现代登山者的价值观:
难度 ↑ = 荣誉 ↑
- 选择最难的路线
- 挑战极限
- 证明技术和勇气

1
In the pioneering days, however, this was not the case at all.

翻译:
然而,在开拓时期,情况完全不是这样。

转折词 “however” 引出对比


1
2
3
The early climbers were looking for the easiest way to the top,
because the summit was the prize they sought, especially if
it had never been attained before.

翻译:
早期登山者寻找的是到达顶峰最容易的路线,因为山顶才是他们
追求的奖赏,尤其是如果那座山从未有人登顶过。

早期登山者的价值观:

1
2
3
4
5
6
7
8
9
10
目标 = 登顶(首次征服)
手段 = 最容易的路线

比喻:
现代:攀岩比赛(看谁技术好)
早期:探险竞赛(看谁先到)

就像:
现代:马拉松选手追求最快时间
早期:探险家只想到达南极点

1
2
3
4
5
It is true that during their explorations they often faced 
difficulties and dangers of the most perilous nature,
equipped in a manner which would make a modern climber
shudder at the thought, but they did not go out of their
way to court such excitement.

翻译:
确实,在探险过程中,他们经常面临极其危险的困难和险境,
装备简陋到会让现代登山者想想都发抖,但他们并不是
刻意去追求这种刺激。

关键词解析:

  • perilous /ˈperələs/:极其危险的
  • shudder /ˈʃʌdər/:颤抖、战栗
  • court:追求、招致(court danger = 自找危险)
  • go out of one’s way to do:特意去做、刻意做

理解:

1
2
3
4
5
6
7
8
9
10
11
早期登山者:
✅ 会遇到危险(客观存在)
❌ 不是为了追求危险(主观意愿)

装备对比:
早期:基本绳索、简陋工具
现代:专业冰镐、安全带、氧气瓶等

态度对比:
早期:危险是达成目标的代价
现代:危险本身就是目标的一部分

1
They had a single aim, a solitary goal — the top!

翻译:
他们只有一个目标,一个唯一的目标——登顶!

修辞手法:

  • 重复强调:single aim, solitary goal
  • 破折号:加强语气
  • 感叹号:表达决心

solitary /ˈsɑːləteri/:

  • 唯一的、单独的
  • 强调”只有这一个,别无其他”

📝 第二段:早期登山的艰苦条件

原文分析

1
2
It is hard for us to realize nowadays how difficult it 
was for the pioneers.

翻译:
我们现在很难想象当年开拓者们有多么艰难。

写作手法:

  • 引起读者共鸣
  • 为后文铺垫

1
2
3
4
Except for one or two places such as Zermatt and Chamonix, 
which had rapidly become popular, Alpine villages tended
to be impoverished settlements cut off from civilization
by the high mountains.

翻译:
除了策尔马特和夏蒙尼这一两个迅速变得热门的地方,
阿尔卑斯山区的村庄往往是被高山与文明世界隔绝的
贫困定居点。

地理背景:

1
2
3
4
5
6
7
8
9
10
Zermatt(策尔马特):
- 瑞士著名滑雪胜地
- 马特洪峰(Matterhorn)脚下
- 现在:豪华度假村
- 当时:少数几个发展起来的村庄

Chamonix(夏蒙尼):
- 法国阿尔卑斯山区
- 勃朗峰(Mont Blanc,欧洲最高峰)脚下
- 1924年第一届冬奥会举办地

关键词:

  • impoverished /ɪmˈpɑːvərɪʃt/:贫困的
  • settlements:定居点
  • cut off from:与…隔绝

理解:

1
2
3
4
5
6
大部分山村的状况:
❌ 交通不便(高山阻隔)
❌ 经济落后(贫困)
❌ 与外界隔绝(信息闭塞)

只有极少数地方因为登山热而发展起来

1
2
3
Such inns as there were generally dirty and flea-ridden; 
the food simply local cheese accompanied by bread often
twelve months old, all washed down with coarse wine.

翻译:
那里仅有的客栈通常又脏又满是跳蚤;食物只是当地奶酪
配上常常已有一年之久的面包,全都用粗劣的葡萄酒冲下去。

语法点:

1
2
Such inns as there were = The inns that existed
(倒装句,强调"仅有的那些客栈")

关键词:

  • flea-ridden:满是跳蚤的

    • flea /fliː/:跳蚤
    • -ridden:充满…的(pest-ridden = 害虫成灾的)
  • accompanied by:配以、伴随

  • wash down:(用饮料)送下、冲下

    • 例:wash down pills with water(用水送服药片)
  • coarse /kɔːrs/:粗糙的、劣质的

生动描写:

1
2
3
4
5
6
7
8
9
住宿条件:
🏚️ 客栈:脏、跳蚤多
🍞 食物:陈年面包 + 奶酪
🍷 饮料:劣质葡萄酒

画面感:
想象一下,你爬了一天山,累得半死,
结果住的地方满是跳蚤,吃的是硬邦邦的
一年前的面包,喝的是难以下咽的酸酒...

1
2
3
4
Often a valley boasted no inn at all, and climbers found 
shelter wherever they could — sometimes with the local
priest (who was usually as poor as his parishioners),
sometimes with shepherds or cheese-makers.

翻译:
很多山谷甚至连一家客栈都没有,登山者只能随遇而安地
找住处——有时住在当地牧师家里(牧师通常和他的教民
一样穷),有时住在牧羊人或奶酪制作者家里。

关键词:

  • boast:拥有、以…自豪

    • 这里是反讽:连一家客栈都”拥有不了”
  • shelter:庇护所、住处

  • priest /priːst/:牧师

  • parishioners /pəˈrɪʃənərz/:教区居民

  • shepherds /ˈʃepərdz/:牧羊人

社会背景:

1
2
3
4
5
6
7
8
9
10
19世纪阿尔卑斯山区:
- 极度贫困
- 连牧师都很穷(通常牧师是村里的知识分子)
- 主要职业:放牧、制作奶酪

登山者的住宿选择:
1. 客栈(如果有的话)
2. 牧师家
3. 牧民家
→ 都很简陋

1
2
Invariably the background was the same: dirt and poverty, 
and very uncomfortable.

翻译:
无一例外,背景都是一样的:肮脏、贫穷,而且非常不舒适。

关键词:

  • invariably /ɪnˈveriəbli/:总是、无一例外地
    • in- (not) + vari- (vary变化) + -ably
    • = 不变地、一成不变地

修辞:

  • 三个并列:dirt, poverty, uncomfortable
  • 递进强调恶劣条件

1
2
3
For men accustomed to eating seven-course dinners and 
sleeping between fine linen sheets at home, the change
to the Alps must have been very hard indeed.

翻译:
对于那些在家习惯了吃七道菜的晚餐、睡在精美亚麻床单上的
人来说,到阿尔卑斯山的这种转变一定非常艰难。

关键词:

  • accustomed to:习惯于

    • be/get accustomed to doing
  • seven-course dinner:七道菜的正餐

    1
    2
    3
    4
    5
    6
    7
    8
    维多利亚时代的正式晚餐:
    1. 开胃菜(Appetizer)
    2. 汤(Soup)
    3. 鱼(Fish)
    4. 主菜(Main course)
    5. 沙拉(Salad)
    6. 甜点(Dessert)
    7. 咖啡/茶(Coffee/Tea)
  • linen /ˈlɪnɪn/:亚麻布

    • fine linen sheets:高档亚麻床单
  • must have been:(对过去的推测)一定是

社会背景:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
早期登山者的身份:
✅ 上流社会
✅ 富裕阶层
✅ 有闲暇时间

生活对比:
在家:
🍽️ 七道菜正餐
🛏️ 高档床单
🏰 舒适豪宅

在山里:
🍞 陈年面包 + 奶酪
🛏️ 跳蚤满床
🏚️ 简陋小屋

→ 巨大的反差!

🎯 文章结构分析

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
总体结构:今昔对比

第一段:登山理念的对比
┌─────────────────────────┐
│ 现代:追求难度和挑战 │
│ ↕️ 对比 │
│ 早期:只求登顶(首次征服) │
└─────────────────────────┘

第二段:早期登山的艰苦条件
┌─────────────────────────┐
│ 住宿:脏、跳蚤、简陋 │
│ 饮食:陈年面包、劣质酒 │
│ 环境:贫困、与世隔绝 │
│ 对比:上流社会 vs 山区贫困 │
└─────────────────────────┘

写作手法:
1. 对比(现代 vs 早期)
2. 具体描写(细节丰富)
3. 层层递进(从理念到条件)

📚 重点词汇总结

核心词汇

单词 音标 词性 含义 例句
alpinist /ˈælpɪnɪst/ n. 登山者 Modern alpinists seek challenges.
pioneering /ˌpaɪəˈnɪrɪŋ/ adj. 开拓性的 the pioneering days of mountaineering
summit /ˈsʌmɪt/ n. 山顶、顶峰 reach the summit
perilous /ˈperələs/ adj. 危险的 perilous journey
shudder /ˈʃʌdər/ v. 颤抖、战栗 shudder at the thought
court /kɔːrt/ v. 追求、招致 court danger/disaster
solitary /ˈsɑːləteri/ adj. 唯一的、孤独的 a solitary goal
impoverished /ɪmˈpɑːvərɪʃt/ adj. 贫困的 impoverished villages
inn /ɪn/ n. 小旅馆、客栈 stay at an inn
flea-ridden /ˈfliː rɪdn/ adj. 满是跳蚤的 flea-ridden beds
coarse /kɔːrs/ adj. 粗糙的、粗劣的 coarse wine
boast /boʊst/ v. 拥有、自夸 The valley boasted no inn.
shelter /ˈʃeltər/ n. 庇护所 find shelter
parishioner /pəˈrɪʃənər/ n. 教区居民 poor parishioners
shepherd /ˈʃepərd/ n. 牧羊人 stay with shepherds
linen /ˈlɪnɪn/ n. 亚麻布 fine linen sheets
invariably /ɪnˈveriəbli/ adv. 总是、不变地 invariably the same

重点短语

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
1. go out of one's way to do
特意去做、刻意做
例:He went out of his way to help me.

2. cut off from
与...隔绝
例:cut off from civilization

3. wash down
(用饮料)冲下
例:wash down food with beer

4. be accustomed to
习惯于
例:be accustomed to luxury

5. must have been
(对过去的推测)一定是
例:It must have been difficult.

🎓 写作技巧学习

1. 对比手法

1
2
3
4
5
6
7
8
有效的对比结构:
- 现代 vs 过去
- 理想 vs 现实
- 期望 vs 实际

本文:
现代登山者 ↔ 早期登山者
舒适家居 ↔ 艰苦山区

2. 细节描写

1
2
3
4
5
6
7
不要泛泛而谈,要具体:
❌ "条件很差"
✅ "客栈又脏又满是跳蚤"
✅ "面包已有一年之久"
✅ "用粗劣的葡萄酒冲下去"

→ 让读者有画面感

3. 层层递进

1
2
3
4
5
从抽象到具体:
1. 登山理念(抽象)
2. 住宿条件(具体)
3. 饮食状况(更具体)
4. 生活对比(强化)

💭 深层思考

历史背景

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
为什么早期登山者是上流社会?

1. 时间:
- 登山需要几周甚至几个月
- 只有贵族、富商有闲暇

2. 金钱:
- 雇佣向导、搬运工
- 购买装备
- 旅行费用

3. 教育:
- 探险精神
- 科学兴趣(很多是地质学家、博物学家)

4. 社会地位:
- 征服未知山峰 = 荣誉
- 回国后成为名人

时代变迁

1
2
3
4
5
6
7
8
9
10
11
12
13
从早期到现代:

早期(1850-1900):
目标:首次登顶
精神:探险、征服
身份:贵族、富人

现代(1950-至今):
目标:挑战难度
精神:极限运动
身份:专业运动员、爱好者

→ 从"征服自然"到"挑战自我"

✍️ 练习建议

1. 复述练习

1
2
3
4
用自己的话概括:
- 早期登山者的目标是什么?
- 他们面临哪些困难?
- 与现代登山者有何不同?

2. 写作练习

1
2
3
4
模仿本文结构,写一篇对比文章:
- 早期旅行 vs 现代旅行
- 早期通信 vs 现代通信
- 早期教育 vs 现代教育

3. 词汇应用

1
2
3
4
5
用本课词汇造句:
- pioneering
- perilous
- impoverished
- invariably

How much of each year do spiders spend killing insects?

Why, you may wonder, should spiders be our friends? Because they destroy so many insects, and insects include some of the greatest enemies of the human race. Insects would make it impossible for us to live in the world; they would devour all our crops and kill our flocks and herds, if it were not for the protection we get from insect-eating animals. We owe a lot to the birds and beasts who eat insects but all of them put together kill only a fraction of the number destroyed by spiders. Moreover, unlike some of the other insect eaters, spiders never do the least harm to us or our belongings.

Spiders are not insects, as many people think, not even nearly related to them. One can tell the difference almost at a glance, for a spider always has eight legs and an insect never more than six.

How many spiders are engaged in this work on our behalf? One authority on spiders made a census of the spiders in a grass field in the south of England, and he estimated that there were more than 2,250,000 in one acre; that is something like 6,000,000 spiders of different kinds of a football pitch. Spiders are busy for at least half the year in killing insects. It is impossible to make more than the wildest guess at how many they kill, but they are hungry creatures, not content with only three meals a day. It has been estimated that the weight of all the insects destroyed by spiders in Britain in one year would be greater than the total weight of all the human beings in the country.

文章讲解

📋 文章主题

这是一篇说明文,主题是:蜘蛛是人类的朋友,因为它们大量捕食昆虫


🎯 文章结构分析

第一段:蜘蛛的重要作用

  • 核心观点:蜘蛛通过消灭昆虫保护人类
  • 论证逻辑
    1. 昆虫是人类的大敌(会毁坏庄稼、杀死牲畜)
    2. 食虫动物保护了我们
    3. 蜘蛛杀死的昆虫数量远超其他食虫动物
    4. 蜘蛛对人类无害

第二段:蜘蛛与昆虫的区别

  • 纠正常见误解:蜘蛛不是昆虫
  • 简单辨别方法:蜘蛛8条腿,昆虫最多6条腿

第三段:惊人的数据

用具体数字说明蜘蛛的贡献:

  • 密度:英格兰南部草地,每英亩超过225万只蜘蛛
  • 换算:一个足球场大小约有600万只不同种类的蜘蛛
  • 工作时长:每年至少半年在捕食昆虫
  • 食量:英国蜘蛛一年消灭的昆虫总重量 > 全国人口总重量

📚 重点词汇解析

单词 词性 含义 用法
devour v. 吞食,毁灭 devour all our crops
flocks n. 羊群 flocks and herds(成对使用)
herds n. 牛群 指大型牲畜群
beasts n. 野兽,动物 birds and beasts(鸟兽)
glance n. 一瞥 at a glance(一眼就能看出)
behalf n. 利益,代表 on our behalf(为我们)
census n. 普查,统计 make a census of…
acre n. 英亩 面积单位(约4047平方米)
pitch n. 球场 football pitch(足球场)

✨ 精彩表达

  1. “insects include some of the greatest enemies of the human race”

    • 昆虫是人类最大的敌人之一
  2. “all of them put together kill only a fraction of…”

    • 所有这些加起来也只杀死了一小部分
    • put together = 加在一起
  3. “never do the least harm to us”

    • 从不对我们造成丝毫伤害
    • not the least = 一点也不
  4. “not content with only three meals a day”

    • 不满足于一日三餐
    • 形容蜘蛛食量大

🔢 回答标题问题

“How much of each year do spiders spend killing insects?”

答案:文中明确指出 “at least half the year”(至少半年)


💡 写作手法

  1. 设问开篇:引发读者思考
  2. 数据支撑:用具体统计增强说服力
  3. 对比论证:蜘蛛 vs 其他食虫动物
  4. 纠正误解:科普蜘蛛不是昆虫
  5. 夸张修辞:昆虫重量 > 人口重量(强调效果)

这是一篇典型的科普说明文,逻辑清晰,数据详实,语言生动!