0%

By Long Luo

目前大致读过的一些DK书籍

Big Ideas Simply Explained

The Art Book (Big Ideas Simply Explained)

The Bible Book (Big Ideas Simply Explained)

The Law Book (Big Ideas Simply Explained)

The Medicine Book (Big Ideas Simply Explained)

The Movie Book (Big Ideas Simply Explained)

DK English

English for Everyone - Business English - Level 1 Course Book

English for Everyone - Business English - Practice Book Level 2

English for Everyone - English Idioms by Thomas Booth, Jenny Wilson

English for Everyone - Level 1 Beginner - Course Book by Rachel Harding, Tim Bowen, Susan Barduhn

English for Everyone - Level 3 Intermediate - Practice Book

English for Everyone English Vocabulary Builder

English for Everyone Junior 5 Words a Day

DK Witness

DK Witness Travel Guide

Journey An Illustrated History of Travel by DK, Simthsonian

Austria (DK Eyewitness Travel)

Brazil (DK Eyewitness Travel)

Canada (DK Eyewitness Travel)

China (DK Eyewitness Travel)

Dordogne Southwest France (DK Eyewitness Travel)

Europe (DK Eyewitness Travel)

Family Guide Italy (DK Eyewitness Travel)

Florence & Tuscany (DK Eyewitness Travel)

France (DK Eyewitness Travel) by DK.epub
France (DK Eyewitness Travel)

Germany (DK Eyewitness Travel)

India (DK Eyewitness Travel)

Istanbul (DK Eyewitness Travel)

Las Vegas (DK Eyewitness Travel)

London (DK Eyewitness Travel)

Mexico (DK Eyewitness Travel)

Moscow (DK Eyewitness Travel)

New England (DK Eyewitness Travel)

Paris (DK Eyewitness Travel)

Poland (DK Eyewitness Travel)

Portugal (DK Eyewitness Travel)

Prague (DK Eyewitness Travel)

Rome (DK Eyewitness Travel)

San Francisco and the Bay Area (DK Eyewitness Travel)

Spain (DK Eyewitness Travel)

St. Petersburg (DK Eyewitness Travel)

Stockholm (DK Eyewitness Travel)

Switzerland (DK Eyewitness Travel)

Top 10 Amsterdam (DK Eyewitness Travel)

Top 10 Berlin (DK Eyewitness Travel)

Top 10 Boston (DK Eyewitness Travel)

Top 10 Budapest (DK Eyewitness Travel)

Top 10 Copenhagen (DK Eyewitness Travel)

Top 10 Honolulu & Oahu (DK Eyewitness Travel)

Top 10 Los Angeles (DK Eyewitness Travel)

Top 10 Rome (DK Eyewitness Travel)

Top 10 San Antonio and Austin (DK Eyewitness Travel)

Top 10 Tokyo (DK Eyewitness Travel)

USA (DK Eyewitness Travel)

Ultimate Food Journeys (DK Eyewitness Travel)

Vienna (DK Eyewitness Travel)

Vietnam (DK Eyewitness Travel)

Washington DC (DK Eyewitness Travel)

By Long Luo

《我们为什么要睡觉?》

《睡眠革命》

  1. 每天 8 小时的睡眠对于所有人都是必要的,包括老年人。缺乏足够睡眠对身体和心理都有伤害。只有极少的人只需要6-7小时睡眠。提倡短睡眠、认为睡眠是懒惰的表现的说法,是一种傲慢的错觉。

为什么睡眠对身体和大脑都很重要?

By Long Luo

从2013年注册了Github账号开始,一直断断续续上传了自己写的很多项目,但Star数和Fork数并不多,目前来看,最多的居然是这个10年前学习Java时的练手项目:网络聊天室

网络聊天室项目绝大部分代码其实是拷贝一个学习项目,最近重新看了下,项目源码很多都不符合编程规范,作为初学者入门学习还是可以的,就5个class,方便入门,但可以学到Java Socket编程、Java Swing、多线程编程等。

阅读全文 »

By Long Luo

一、 Math

1.1 PreCalculus

PreCalculus

1.2 Calculus

《Calculus Better Explained: A Guide to Developing Lasting Intuition》,力荐

《Calculus》 James Stewart版

《Calculus》Ron Larson版

1.3 Algebra

《线性代数及其应用》

《线性代数应该这样学》

《Algebra and Trigonometry》

1.4 视频教程

3Blue1Brown的部分数学教学视频:

微积分的本质 - 系列合集

线性代数的本质 - 系列合集

阅读全文 »

By Long Luo

之前个人网站文章阅读次数存储一直在Leancloud上,由于去年国内版要求网站必须备案才能使用之后,个人网站的浏览次数一直是不可用状态。几个月前切换到国际版,但是切换之后浏览次数一直是空白null值,正常应该是0,数据也不会更新。

后台查看Counter数据,也一直是没有数据的状态。当时花费了时间去检查,试图找到问题所在,当时还是怀疑LeanCloud国际版后台接口API的问题,但一直没能解决这个问题。

今天下午从原理入手,分析每个可能的步骤,找到了问题原因,在此记录下解决问题的过程。

阅读全文 »

By Long Luo

Hugo vs. Hexo

目前我的个人网站使用的是: Hexo + Next,这也是目前绝大多数个人网站的标配。Hugo官网号称是最快的网站框架,构建速度快,因为我的文章数比较多,以后考虑切换成Hugo,今天花了点时间来学习了下。

以下是学习过程:

Hugo使用指南

下载Hugo

因为是Windows 10系统,先去下载:https://github.com/gohugoio/hugo/releases

选择Windows版本,下载之后解压,解压可以得到hugo.exe,将hugo.exe所在文件路径添加到Windows的Path变量中:

1
2
E:\Website>hugo version
hugo v0.82.0-9D960784+extended windows/amd64 BuildDate=2021-03-21T17:28:04Z VendorInfo=gohugoio
阅读全文 »

晚上在水木社区一篇帖子上看到一篇文章《难忘那夜的秋雨》,写的非常真挚感人,看完深受感动,没想到作者居然是吴官正。作为一名农民的儿子,曾经有过同样的感受,我想他能从一个赤贫小子成为常委之一,这种骨气和自强不息的精神内核才是根本吧!

《难忘那夜的秋雨》摘自吴官正退休后写的一本书《闲来笔潭》,于是我按图索骥,去读了这本书里的其他文章,有些文章也很精彩。尤其是第一部分:岁月难忘,让我们得以一窥他的年少成长史。从他的经历中获取力量。

下面摘录几篇《闲来笔潭》里我觉得写的很好的文章:

阅读全文 »

By Long Luo

525. 连续数组题目如下:

  1. 连续数组

给定一个二进制数组 nums , 找到含有相同数量的 0 和 1 的最长连续子数组,并返回该子数组的长度。

示例 1:
输入: nums = [0,1]
输出: 2
说明: [0, 1] 是具有相同数量 0 和 1 的最长连续子数组。

示例 2:
输入: nums = [0,1,0]
输出: 2
说明: [0, 1](或 [1, 0])是具有相同数量0和1的最长连续子数组。

提示:
1 <= nums.length <= 10^5
nums[i]不是0就是1

方法一:暴力遍历

思路与算法:

首先想到的方法是暴力遍历,第一层循环,索引ii00nn,第二层循环则是计算到i+1i+1nn0011的数量,如果相等,则更新最大长度maxLength\textit{maxLength}

代码如下所示:

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
public int findMaxLength(int[] nums) {
if (nums == null || nums.length <= 1) {
return 0;
}

int ans = 0;
int n = nums.length;
int zeroNum = 0;
int oneNum = 0;
for (int i = 0; i < n; i++) {
zeroNum = 0;
oneNum = 0;
if (nums[i] == 0) {
zeroNum++;
} else {
oneNum++;
}

for (int j = i + 1; j < n; j++) {
if (nums[j] == 0) {
zeroNum++;
} else {
oneNum++;
}

if (zeroNum == oneNum) {
ans = Math.max(ans, 2 * zeroNum);
}
}
}

return ans;
}

复杂度分析:

  • 时间复杂度:O(N2)O(N^2),其中N是数组nums\textit{nums}的长度。
  • 空间复杂度:O(1)O(1),多了2个记录0011的数量变量。
阅读全文 »

By Long Luo

29. 两数相除题目如下:

  1. 两数相除

给定两个整数,被除数dividend和除数divisor。将两数相除,要求不使用乘法、除法和mod运算符。

返回被除数dividend除以除数divisor得到的商。

整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2

示例 1:
输入: dividend = 10, divisor = 3
输出: 3
解释: 10/3 = truncate(3.33333…) = truncate(3) = 3

示例 2:
输入: dividend = 7, divisor = -3
输出: -2
解释: 7/-3 = truncate(-2.33333…) = -2

提示:
被除数和除数均为3232位有符号整数。
除数不为00
假设我们的环境只能存储3232位有符号整数,其数值范围是[−2^31, 231−1]。本题中,如果除法结果溢出,则返回231−1。

方法一:暴力法

思路与算法:

首先想到的是不能使用乘法、除法和mod运算符,那么只能使用加减法了。因为除法就是看被除数能让存在多少个被除数相加。因为被除数和除数均为3232位有符号整数,会存在溢出的情况,所以我们首先进行转换,转换成Long型进行处理,代码如下所示:

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
public int divide(int dividend, int divisor) {
if (dividend == 0) {
return 0;
}

long dividendLong = dividend;
long divisorLong = divisor;

boolean isNegative = false;
if (dividendLong < 0 && divisorLong < 0) {
dividendLong = -dividendLong;
divisorLong = -divisorLong;
} else if (dividendLong < 0 && divisorLong > 0) {
isNegative = true;
dividendLong = -dividendLong;
} else if (dividendLong > 0 && divisorLong < 0) {
isNegative = true;
divisorLong = -divisorLong;
}

long ans = 0;
while (dividendLong >= divisorLong) {
dividendLong -= divisorLong;
ans++;
}

if (isNegative) {
ans = -ans;
}

if (ans > Integer.MAX_VALUE) {
return Integer.MAX_VALUE;
}

return (int) ans;
}

毫无疑问,超时了!

因为题目规定了“只能存储32位整数”,所以代码中都不能使用任何64位整数。

如果除法结果溢出,那么我们需要返回23112^{31}-1作为答案。因此我们可以首先对于溢出或者容易出错的边界情况进行讨论:

  • 当被除数为3232位有符号整数的最小值231-2^{31}时:
    • 如果除数为11,那么我们可以直接返回答案231-2^{31}
    • 如果除数为1-1,那么答案为2312^{31},产生了溢出。此时我们需要返回23112^{31}-1
  • 当除数为3232位有符号整数的最小值231-2^{31}时:
    • 如果被除数同样为231-2^{31},那么我们可以直接返回答案11
    • 对于其余的情况,我们返回答案00
  • 当被除数为00时,我们可以直接返回答案00

对于一般的情况,根据除数和被除数的符号,我们需要考虑44种不同的可能性。因此,为了方便编码,我们可以将被除数或者除数取相反数,使得它们符号相同。

如果我们将被除数和除数都变为正数,那么可能会导致溢出。例如当被除数为231-2^{31}时,它的相反数2312^{31}产生了溢出。因此,我们可以考虑将被除数和除数都变为负数,这样就不会有溢出的问题,在编码时只需要考虑11种情况了。

如果我们将被除数和除数的其中(恰好)一个变为了正数,那么在返回答案之前,我们需要对答案也取相反数。

阅读全文 »

By Long Luo

最近对网站进行了一些升级,增加了一些新特性,在此做下记录:

Hexo升级到8.X版本

之前使用的Hexo是v7.8版本,最近升级到8.X版本。
Next主题的Github地址从theme-next切换到了next-theme ,8.X版本都位于此网站theme-next.js.org上。

直接git clone https://github.com/next-theme/hexo-theme-next/最新代码,修改Next Theme_config.yml文件。

增加说说页面

之前看到一些其他个人网站有类似于时间线的界面,如:苏剑林科学空间的微言微语
卢昌海的微言小义

因为很多时候写一篇博文太长太重了,而实际上想发表下一些碎片化的思考和感悟。这种时间线的句子更合适些。所以也想自己搭建一个,最终通过网络寻找资料找到并搭建了2个页面:

  1. 碎碎念
  2. 说说

搭建方法很简单,可参考下面的2篇文章:

  1. 为你的hexo博客添加动态的(可直接发布说说的)说说页面
  2. BB短博文Hexo-Next主题(8.0+)适配

哔哔可能更好点,因为可以通过微信公众号直接发送,但由于这部分没有开源,如果可以迁移到自己的微信公众号就更好了。

阅读全文 »