以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间  。

示例 1:

输入:intervals = [[1,3],[2,6],[8,10],[15,18]]
输出:[[1,6],[8,10],[15,18]]
解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].

示例  2:

输入:intervals = [[1,4],[4,5]]
输出:[[1,5]]
解释:区间 [1,4] 和 [4,5] 可被视为重叠区间。

提示:

1 <= intervals.length <= 104
intervals[i].length == 2
0 <= starti <= endi <= 104

阅读全文 »


给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。

请必须使用时间复杂度为 O(log n) 的算法。

自己想到的解法,时间复杂度为 O(n):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
let length = nums.length;

if (target <= nums[0]) {
return 0;
} else if (target === nums[length - 1]) {
return length - 1;
} else if (target > nums[length - 1]) {
return length;
} else {
let flag = false;
for (let i = 0; i < nums.length; i++) {
if (target === nums[i]) return i;
else flag = true;
}

if (flag) {
for (let i = 0; i < nums.length; i++) {
if (target >= nums[i] && target <= nums[i + 1]) {
return i + 1;
}
}
}
}
阅读全文 »


  1. 修改文档背景色

参考原文,记录备查!

修改路径:打开 Acrobat DC 点击编辑 ==> 首选项 ==> 辅助工具 ==> 文档颜色选项 ==> 自定义颜色。

几种柔和的背景色配色方案:

1
2
3
4
5
6
7
8
9
10
Typora颜色:(255,251,232)
下面的颜色部分转载于(https://www.jianshu.com/p/bbe9ce62e5a2)
河白色 FFFFFF rgb(255, 255, 255)
杏仁黄 FAF9DE rgb(250, 249, 222)
秋叶褐 FFF2E2 rgb(255, 242, 226)
胭脂红 FDE6E0 rgb(253, 230, 224)
青草绿 E3EDCD rgb(227, 237, 205)
海天蓝 DCE2F1 rgb(220, 226, 241)
葛巾紫 E9EBFE rgb(233, 235, 254)
极光灰 EAEAEF rgb(234, 234, 239)
  1. 快速高亮文本

参考原文,要启用单键快捷方式,请打开“首选项”对话框(“编辑”>“首选项”),然后在“一般”下,选择“使用单键加速键访问工具”选项。
展开页面右侧导航,选择 注释 ,点击 高亮文本 工具,可实现鼠标左键双击高亮文本。

1
选定当前高亮标记工具 U


自己想到的解法,就是循环遍历数组中的每一个元素,求出左侧数之和和右侧数之和,然后判断是否相等。

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
var pivotIndex = function (nums) {
for (let i = 0; i < nums.length; i++) {
let sumLeft = 0;
let sumRight = 0;

// 1.求左侧数之和
for (let l = 0; l < i; l++) {
sumLeft += nums[l];
}

// 2.求右侧数之和
for (let r = i + 1; r < nums.length; r++) {
sumRight += nums[r];
}

// 判断
if (sumLeft === sumRight) {
return i;
} else if (i === nums.length - 1) {
return -1;
} else {
continue;
}
}
};
nums = [1, 7, 3, 6, 5, 6];
console.log(pivotIndex(nums));

由于使用了嵌套的 for 循环,所以时间复杂度为 O(n²)。

阅读全文 »
0%