Skip to content

Commit

Permalink
week 0702
Browse files Browse the repository at this point in the history
  • Loading branch information
xtray committed Jul 13, 2022
1 parent 2449109 commit 8fc6ad1
Show file tree
Hide file tree
Showing 14 changed files with 219 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@

1. [[子序列中字面值等于字符串T的个数]]

940. [[不同的子序列 II]] [H]
940. [[200. ★算法题目汇总★/★算法面试题汇总/不同的子序列 II]] [H]

1. [[汉诺塔游戏中的最优状态]]

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -275,4 +275,14 @@

2322. [[从树中删除边的最小分数]] [H]

2327. [[知道秘密的人数]] [M]
2327. [[知道秘密的人数]] [M]

759. [[员工空闲时间]] [H]

850. [[矩形面积 II]] [H]

1. [[求n个矩形的总面积]]

940. [[不同的子序列 II 1]] II [H]

1. [[字面值不同的子序列]]
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@
1. [[牛牛分田地]]
803. [[粘在天花板上的数字与炸弹|打砖块]]
1. [[等累加和集合对中最大的累加和]]
940. [[不同的子序列 II|不同的子序列 II]]
940. [[200. ★算法题目汇总★/★算法面试题汇总/不同的子序列 II|不同的子序列 II]]
1. [[数组中全是1的最大正方形]]
1. [[画匠问题]]
1. [[丢棋子问题]]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@

[[子序列中字面值等于字符串T的个数]]

940.[[不同的子序列 II]] [H]
940.[[200. ★算法题目汇总★/★算法面试题汇总/不同的子序列 II]] [H]
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
# 2022年7月第2周

---

759.[[员工空闲时间]] [H]

850.[[矩形面积 II]] [H]

[[求n个矩形的总面积]]

940.[[不同的子序列 II 1]] II [H]

[[字面值不同的子序列]]
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
- 题目1: [[牛牛分田地]]
- 题目2: [[粘在天花板上的数字与炸弹|打砖块]]
- 题目3: [[等累加和集合对中最大的累加和]]
- 题目4: [[不同的子序列 II]]
- 题目4: [[200. ★算法题目汇总★/★算法面试题汇总/不同的子序列 II]]
- 题目5: [[数组中全是1的最大正方形]]
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
第5期第3节:

- 题目3: [[等累加和集合对中最大的累加和]]
- 题目4: [[不同的子序列 II]]
- 题目4: [[200. ★算法题目汇总★/★算法面试题汇总/不同的子序列 II]]

第5期第4节:
- 题目4: [[求数组调整之后的逆序对数量]]
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# 不同的子序列 II

940.不同的子序列 II

[H]

---

https://leetcode.cn/problems/distinct-subsequences-ii/

给定一个字符串 s,计算 s 的 不同非空子序列 的个数。因为结果可能很大,所以返回答案需要对 10^9 + 7 取余 。

字符串的 子序列 是经由原字符串删除一些(也可能不删除)字符但不改变剩余字符相对位置的一个新字符串。

例如,"ace" 是 "abcde" 的一个子序列,但 "aec" 不是。

```
示例 1:
输入:s = "abc"
输出:7
解释:7 个不同的子序列分别是 "a", "b", "c", "ab", "ac", "bc", 以及 "abc"。
示例 2:
输入:s = "aba"
输出:6
解释:6 个不同的子序列分别是 "a", "b", "ab", "ba", "aa" 以及 "aba"。
示例 3:
输入:s = "aaa"
输出:3
解释:3 个不同的子序列分别是 "a", "aa" 以及 "aaa"。
 
提示:
1 <= s.length <= 2000
s 仅由小写英文字母组成
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# 员工空闲时间

759.员工空闲时间
[H]

---

https://leetcode.cn/problems/employee-free-time/

给定员工的 schedule 列表,表示每个员工的工作时间。

每个员工都有一个非重叠的时间段  Intervals 列表,这些时间段已经排好序。

返回表示 所有 员工的 共同,正数长度的空闲时间 的有限时间段的列表,同样需要排好序。
```
示例 1:
输入:schedule = [[[1,2],[5,6]],[[1,3]],[[4,10]]]
输出:[[3,4]]
解释:
共有 3 个员工,并且所有共同的
空间时间段是 [-inf, 1], [3, 4], [10, inf]。
我们去除所有包含 inf 的时间段,因为它们不是有限的时间段。
 
示例 2:
输入:schedule = [[[1,3],[6,7]],[[2,4]],[[2,5],[9,12]]]
输出:[[5,6],[7,9]]
 
(尽管我们用 [x, y] 的形式表示 Intervals ,内部的对象是 Intervals 而不是列表或数组。例如,schedule[0][0].start = 1, schedule[0][0].end = 2,并且 schedule[0][0][0] 是未定义的)
而且,答案中不包含 [5, 5] ,因为长度为 0。
 
注:
schedule 和 schedule[i] 为长度范围在 [1, 50]的列表。
0 <= schedule[i].start < schedule[i].end <= 10^8。
注:输入类型于 2019 年 4 月 15 日 改变。请重置为默认代码的定义以获取新方法。
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# 字面值不同的子序列
#Snowflake

---

给定一个正数n,比如6
表示数轴上有0,1,2,3,4,5,6
<0 或者 >6 的位置认为无法到达
给定两个数字x和y,0<= x,y <= n
表示小人一开始在x的位置,它的目的地是y的位置,比如x = 1, y = 3
给定一个字符串s,比如 : rrlrlr
任何一个s的子序列,对应着一种运动轨迹,r表示向右,l表示向左
比如一开始小人在1位置,"rlr"是s的一个子序列
那么运动轨迹是:1 -> 2 -> 1 -> 2
求,s中有多少个字面值不同的子序列,能让小人从x走到y,
走的过程中完全不走出0到n的区域。

```
比如,s = "rrlrlr", n = 6, x = 1, y = 3
有如下5个字面值不同的子序列
rr : 1 -> 2 -> 3
rrlr : 1 -> 2 -> 3 -> 2 -> 3
rrrl : 1 -> 2 -> 3 -> 4 -> 3
rlrr : 1 -> 2 -> 1 -> 2 -> 3
rrlrlr : 1 -> 2 -> 3 -> 2 -> 3 -> 2 -> 3
注意:一定要是字面值不同的子序列!相同字面值的子序列算一种
比如s中,有很多个rr的子序列,但是算一个
数据规模 : s串长度 <= 1000, x,y,n <= 250
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# 求n个矩形的总面积

#扫描线
#线段树

---

https://www.luogu.com.cn/problem/P5490

求n个矩形的面积。

输入格式
第一行一个正整数n。

接下来 nn 行每行四个非负整数 x_1, y_1, x_2, y_2 ,表示一个矩形的左下角坐标为 (x_1, y_1),右上角坐标为 (x_2, y_2)。

输出格式
一行一个正整数,表示n个矩形的并集覆盖的总面积。

```
输入输出样例
输入1
2
100 100 200 200
150 150 250 255
输出1
18000
说明/提示
对于20%的数据,1≤n≤1000。
对于100%的数据1≤n≤10^5, x_1<x_2≤10^9, y_1<y_2≤10^9
```




Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# 矩形面积 II


850.矩形面积 II
[H]

#扫描线
#线段树

---


https://leetcode.cn/problems/rectangle-area-ii/

我们给出了一个(轴对齐的)二维矩形列表 rectangles 。 对于 rectangle[i] = `[x1, y1, x2, y2]`,其中(x1,y1)是矩形 i 左下角的坐标, (xi1, yi1) 是该矩形 左下角 的坐标, (xi2, yi2) 是该矩形 右上角 的坐标。

计算平面中所有 rectangles 所覆盖的 总面积 。任何被两个或多个矩形覆盖的区域应只计算 一次 。

返回 总面积 。因为答案可能太大,返回 109 + 7 的 模 。


```
示例 1:
输入:rectangles = [[0,0,2,2],[1,0,2,3],[1,0,3,1]]
输出:6
解释:如图所示,三个矩形覆盖了总面积为6的区域。
从(1,1)到(2,2),绿色矩形和红色矩形重叠。
从(1,0)到(2,3),三个矩形都重叠。
示例 2:
输入:rectangles = [[0,0,1000000000,1000000000]]
输出:49
解释:答案是 1018 对 (109 + 7) 取模的结果, 即 49 。
 
提示:
1 <= rectangles.length <= 200
rectanges[i].length = 4
0 <= xi1, yi1, xi2, yi2 <= 10^9
矩形叠加覆盖后的总面积不会超越 2^63 - 1 ,这意味着可以用一个 64 位有符号整数来保存面积结果。
```
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
- [[最长公共子序列]]
- [[打印一个字符串的全部子序列,要求不要出现重复字面值的子序列]]
- [[给定两个字符串S和T,返回S子序列等于T的不同子序列个数]]
- [[不同的子序列 II]]
- [[200. ★算法题目汇总★/★算法面试题汇总/不同的子序列 II]]



Expand Down

0 comments on commit 8fc6ad1

Please sign in to comment.