Skip to content

Commit

Permalink
week 0602
Browse files Browse the repository at this point in the history
  • Loading branch information
xtray committed Jun 15, 2022
1 parent f9b88b5 commit 11ec2d3
Show file tree
Hide file tree
Showing 8 changed files with 217 additions and 3 deletions.
4 changes: 2 additions & 2 deletions zuoAlgorithm/000. 学习大纲/___课程题目Summary.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@
代码题目总数:

新课:
营养课: 122
营养课: 126
新手班: 29
体系学习班: 188
大厂刷题班(含LeetCode高频题&LeetCodeTop100题): 408(未去重)

共计: 747(未去重)
共计: 751(未去重)

老课:
基础班: 84
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -245,4 +245,12 @@

1. [[严格连续递增的子数组最大长度]]

1. [[三种数字的个数都相等的最小变化次数]]
1. [[三种数字的个数都相等的最小变化次数]]

947. [[移除最多的同行或同列石头]] [M]

2281. [[巫师的总力量和]] [H]

1819. [[序列中不同最大公约数的数目]] [H]

829. [[连续整数求和]] [H]
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# 2022年6月第2周

---

947.[[移除最多的同行或同列石头]] [M]

2281.[[巫师的总力量和]] [H]

1819.[[序列中不同最大公约数的数目]] [H]

829.[[连续整数求和]] [H]
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# 巫师的总力量和
2281.巫师的总力量和
[H]

周赛294

#单调栈
#前缀和

---

https://leetcode.cn/problems/sum-of-total-strength-of-wizards/


作为国王的统治者,你有一支巫师军队听你指挥。

给你一个下标从 0 开始的整数数组 strength ,其中 strength[i] 表示第 i 位巫师的力量值。对于连续的一组巫师(也就是这些巫师的力量值是 strength 的 子数组),总力量 定义为以下两个值的 乘积 :

巫师中 最弱 的能力值。
组中所有巫师的个人力量值 之和 。
请你返回 所有 巫师组的 总 力量之和。由于答案可能很大,请将答案对 10^9 + 7 取余 后返回。

子数组 是一个数组里 非空 连续子序列。


```
示例 1:
输入:strength = [1,3,1,2]
输出:44
解释:以下是所有连续巫师组:
- [1,3,1,2] 中 [1] ,总力量值为 min([1]) * sum([1]) = 1 * 1 = 1
- [1,3,1,2] 中 [3] ,总力量值为 min([3]) * sum([3]) = 3 * 3 = 9
- [1,3,1,2] 中 [1] ,总力量值为 min([1]) * sum([1]) = 1 * 1 = 1
- [1,3,1,2] 中 [2] ,总力量值为 min([2]) * sum([2]) = 2 * 2 = 4
- [1,3,1,2] 中 [1,3] ,总力量值为 min([1,3]) * sum([1,3]) = 1 * 4 = 4
- [1,3,1,2] 中 [3,1] ,总力量值为 min([3,1]) * sum([3,1]) = 1 * 4 = 4
- [1,3,1,2] 中 [1,2] ,总力量值为 min([1,2]) * sum([1,2]) = 1 * 3 = 3
- [1,3,1,2] 中 [1,3,1] ,总力量值为 min([1,3,1]) * sum([1,3,1]) = 1 * 5 = 5
- [1,3,1,2] 中 [3,1,2] ,总力量值为 min([3,1,2]) * sum([3,1,2]) = 1 * 6 = 6
- [1,3,1,2] 中 [1,3,1,2] ,总力量值为 min([1,3,1,2]) * sum([1,3,1,2]) = 1 * 7 = 7
所有力量值之和为 1 + 9 + 1 + 4 + 4 + 4 + 3 + 5 + 6 + 7 = 44 。
示例 2:
输入:strength = [5,4,6]
输出:213
解释:以下是所有连续巫师组:
- [5,4,6] 中 [5] ,总力量值为 min([5]) * sum([5]) = 5 * 5 = 25
- [5,4,6] 中 [4] ,总力量值为 min([4]) * sum([4]) = 4 * 4 = 16
- [5,4,6] 中 [6] ,总力量值为 min([6]) * sum([6]) = 6 * 6 = 36
- [5,4,6] 中 [5,4] ,总力量值为 min([5,4]) * sum([5,4]) = 4 * 9 = 36
- [5,4,6] 中 [4,6] ,总力量值为 min([4,6]) * sum([4,6]) = 4 * 10 = 40
- [5,4,6] 中 [5,4,6] ,总力量值为 min([5,4,6]) * sum([5,4,6]) = 4 * 15 = 60
所有力量值之和为 25 + 16 + 36 + 36 + 40 + 60 = 213 。
 
提示:
1 <= strength.length <= 10^5
1 <= strength[i] <= 10^9
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# 序列中不同最大公约数的数目

1819.序列中不同最大公约数的数目

[H]

---

https://leetcode.cn/problems/number-of-different-subsequences-gcds

给你一个由正整数组成的数组 nums 。

数字序列的 最大公约数 定义为序列中所有整数的共有约数中的最大整数。

例如,序列 `[4,6,16]` 的最大公约数是 2 。
数组的一个 子序列 本质是一个序列,可以通过删除数组中的某些元素(或者不删除)得到。

例如,`[2,5,10]``[1,2,1,2,4,1,5,10]` 的一个子序列。
计算并返回 nums 的所有 非空 子序列中 不同 最大公约数的 数目 。


```
示例 1:
输入:nums = [6,10,3]
输出:5
解释:上图显示了所有的非空子序列与各自的最大公约数。
不同的最大公约数为 6 、10 、3 、2 和 1 。
示例 2:
输入:nums = [5,15,40,5,6]
输出:7
 
提示:
1 <= nums.length <= 10^5
1 <= nums[i] <= 2 * 10^5
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# 移除最多的同行或同列石头


947.移除最多的同行或同列石头
[M]

#并查集

---
https://leetcode.cn/problems/most-stones-removed-with-same-row-or-column

n 块石头放置在二维平面中的一些整数坐标点上。每个坐标点上最多只能有一块石头。

如果一块石头的 同行或者同列 上有其他石头存在,那么就可以移除这块石头。

给你一个长度为 n 的数组 stones ,其中 stones[i] = [xi, yi] 表示第 i 块石头的位置,返回 可以移除的石子 的最大数量。


```
示例 1:
输入:stones = [[0,0],[0,1],[1,0],[1,2],[2,1],[2,2]]
输出:5
解释:一种移除 5 块石头的方法如下所示:
1. 移除石头 [2,2] ,因为它和 [2,1] 同行。
2. 移除石头 [2,1] ,因为它和 [0,1] 同列。
3. 移除石头 [1,2] ,因为它和 [1,0] 同行。
4. 移除石头 [1,0] ,因为它和 [0,0] 同列。
5. 移除石头 [0,1] ,因为它和 [0,0] 同行。
石头 [0,0] 不能移除,因为它没有与另一块石头同行/列。
示例 2:
输入:stones = [[0,0],[0,2],[1,1],[2,0],[2,2]]
输出:3
解释:一种移除 3 块石头的方法如下所示:
1. 移除石头 [2,2] ,因为它和 [2,0] 同行。
2. 移除石头 [2,0] ,因为它和 [0,0] 同列。
3. 移除石头 [0,2] ,因为它和 [0,0] 同行。
石头 [0,0] 和 [1,1] 不能移除,因为它们没有与另一块石头同行/列。
示例 3:
输入:stones = [[0,0]]
输出:0
解释:[0,0] 是平面上唯一一块石头,所以不可以移除它。
 
提示:
1 <= stones.length <= 1000
0 <= xi, yi <= 10^4
不会有两块石头放在同一个坐标点上
```
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
# 第K小的数字对差值
719.找出第 K 小的数对距离

[H]

---

https://leetcode.cn/problems/find-k-th-smallest-pair-distance/


比如{ 5, 3, 1, 4 }
全部数字对是:(5,3)、(5,1)、(5,4)、(3,1)、(3,4)、(1,4)
数字对的差值绝对值: 2、4、1、2、1、3
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# 连续整数求和

829.连续整数求和

[H]

---

https://leetcode.cn/problems/consecutive-numbers-sum/


给定一个正整数 n,返回 连续正整数满足所有数字之和为 n 的组数 。 


```
示例 1:
输入: n = 5
输出: 2
解释: 5 = 2 + 3,共有两组连续整数([5],[2,3])求和后为 5。
示例 2:
输入: n = 9
输出: 3
解释: 9 = 4 + 5 = 2 + 3 + 4
示例 3:
输入: n = 15
输出: 4
解释: 15 = 8 + 7 = 4 + 5 + 6 = 1 + 2 + 3 + 4 + 5
 
提示:
1 <= n <= 10^9
```

0 comments on commit 11ec2d3

Please sign in to comment.