Skip to content

Commit 38af535

Browse files
committed
feat: add biweekly contest 154
1 parent 8c6c6ef commit 38af535

19 files changed

+999
-1
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
---
2+
comments: true
3+
difficulty: 简单
4+
edit_url: https://github.com/doocs/leetcode/edit/main/solution/3500-3599/3512.Minimum%20Operations%20to%20Make%20Array%20Sum%20Divisible%20by%20K/README.md
5+
---
6+
7+
<!-- problem:start -->
8+
9+
# [3512. 使数组和能被 K 整除的最少操作次数](https://leetcode.cn/problems/minimum-operations-to-make-array-sum-divisible-by-k)
10+
11+
[English Version](/solution/3500-3599/3512.Minimum%20Operations%20to%20Make%20Array%20Sum%20Divisible%20by%20K/README_EN.md)
12+
13+
## 题目描述
14+
15+
<!-- description:start -->
16+
17+
<p>给你一个整数数组 <code>nums</code> 和一个整数 <code>k</code>。你可以执行以下操作任意次:</p>
18+
19+
<ul>
20+
<li>选择一个下标&nbsp;<code>i</code>,并将 <code>nums[i]</code> 替换为 <code>nums[i] - 1</code>。</li>
21+
</ul>
22+
23+
<p>返回使数组元素之和能被 <code>k</code> 整除所需的<strong>最小</strong>操作次数。</p>
24+
25+
<p>&nbsp;</p>
26+
27+
<p><strong class="example">示例 1:</strong></p>
28+
29+
<div class="example-block">
30+
<p><strong>输入:</strong> <span class="example-io">nums = [3,9,7], k = 5</span></p>
31+
32+
<p><strong>输出:</strong> <span class="example-io">4</span></p>
33+
34+
<p><strong>解释:</strong></p>
35+
36+
<ul>
37+
<li>对 <code>nums[1] = 9</code> 执行 4 次操作。现在 <code>nums = [3, 5, 7]</code>。</li>
38+
<li>数组之和为 15,可以被 5 整除。</li>
39+
</ul>
40+
</div>
41+
42+
<p><strong class="example">示例 2:</strong></p>
43+
44+
<div class="example-block">
45+
<p><strong>输入:</strong> <span class="example-io">nums = [4,1,3], k = 4</span></p>
46+
47+
<p><strong>输出:</strong> <span class="example-io">0</span></p>
48+
49+
<p><strong>解释:</strong></p>
50+
51+
<ul>
52+
<li>数组之和为 8,已经可以被 4 整除。因此不需要操作。</li>
53+
</ul>
54+
</div>
55+
56+
<p><strong class="example">示例 3:</strong></p>
57+
58+
<div class="example-block">
59+
<p><strong>输入:</strong> <span class="example-io">nums = [3,2], k = 6</span></p>
60+
61+
<p><strong>输出:</strong> <span class="example-io">5</span></p>
62+
63+
<p><strong>解释:</strong></p>
64+
65+
<ul>
66+
<li>对 <code>nums[0] = 3</code> 执行 3 次操作,对 <code>nums[1] = 2</code> 执行 2 次操作。现在 <code>nums = [0, 0]</code>。</li>
67+
<li>数组之和为 0,可以被 6 整除。</li>
68+
</ul>
69+
</div>
70+
71+
<p>&nbsp;</p>
72+
73+
<p><strong>提示:</strong></p>
74+
75+
<ul>
76+
<li><code>1 &lt;= nums.length &lt;= 1000</code></li>
77+
<li><code>1 &lt;= nums[i] &lt;= 1000</code></li>
78+
<li><code>1 &lt;= k &lt;= 100</code></li>
79+
</ul>
80+
81+
<!-- description:end -->
82+
83+
## 解法
84+
85+
<!-- solution:start -->
86+
87+
### 方法一
88+
89+
<!-- tabs:start -->
90+
91+
#### Python3
92+
93+
```python
94+
95+
```
96+
97+
#### Java
98+
99+
```java
100+
101+
```
102+
103+
#### C++
104+
105+
```cpp
106+
107+
```
108+
109+
#### Go
110+
111+
```go
112+
113+
```
114+
115+
<!-- tabs:end -->
116+
117+
<!-- solution:end -->
118+
119+
<!-- problem:end -->
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
---
2+
comments: true
3+
difficulty: Easy
4+
edit_url: https://github.com/doocs/leetcode/edit/main/solution/3500-3599/3512.Minimum%20Operations%20to%20Make%20Array%20Sum%20Divisible%20by%20K/README_EN.md
5+
---
6+
7+
<!-- problem:start -->
8+
9+
# [3512. Minimum Operations to Make Array Sum Divisible by K](https://leetcode.com/problems/minimum-operations-to-make-array-sum-divisible-by-k)
10+
11+
[中文文档](/solution/3500-3599/3512.Minimum%20Operations%20to%20Make%20Array%20Sum%20Divisible%20by%20K/README.md)
12+
13+
## Description
14+
15+
<!-- description:start -->
16+
17+
<p>You are given an integer array <code>nums</code> and an integer <code>k</code>. You can perform the following operation any number of times:</p>
18+
19+
<ul>
20+
<li>Select an index <code>i</code> and replace <code>nums[i]</code> with <code>nums[i] - 1</code>.</li>
21+
</ul>
22+
23+
<p>Return the <strong>minimum</strong> number of operations required to make the sum of the array divisible by <code>k</code>.</p>
24+
25+
<p>&nbsp;</p>
26+
<p><strong class="example">Example 1:</strong></p>
27+
28+
<div class="example-block">
29+
<p><strong>Input:</strong> <span class="example-io">nums = [3,9,7], k = 5</span></p>
30+
31+
<p><strong>Output:</strong> <span class="example-io">4</span></p>
32+
33+
<p><strong>Explanation:</strong></p>
34+
35+
<ul>
36+
<li>Perform 4 operations on <code>nums[1] = 9</code>. Now, <code>nums = [3, 5, 7]</code>.</li>
37+
<li>The sum is 15, which is divisible by 5.</li>
38+
</ul>
39+
</div>
40+
41+
<p><strong class="example">Example 2:</strong></p>
42+
43+
<div class="example-block">
44+
<p><strong>Input:</strong> <span class="example-io">nums = [4,1,3], k = 4</span></p>
45+
46+
<p><strong>Output:</strong> <span class="example-io">0</span></p>
47+
48+
<p><strong>Explanation:</strong></p>
49+
50+
<ul>
51+
<li>The sum is 8, which is already divisible by 4. Hence, no operations are needed.</li>
52+
</ul>
53+
</div>
54+
55+
<p><strong class="example">Example 3:</strong></p>
56+
57+
<div class="example-block">
58+
<p><strong>Input:</strong> <span class="example-io">nums = [3,2], k = 6</span></p>
59+
60+
<p><strong>Output:</strong> <span class="example-io">5</span></p>
61+
62+
<p><strong>Explanation:</strong></p>
63+
64+
<ul>
65+
<li>Perform 3 operations on <code>nums[0] = 3</code> and 2 operations on <code>nums[1] = 2</code>. Now, <code>nums = [0, 0]</code>.</li>
66+
<li>The sum is 0, which is divisible by 6.</li>
67+
</ul>
68+
</div>
69+
70+
<p>&nbsp;</p>
71+
<p><strong>Constraints:</strong></p>
72+
73+
<ul>
74+
<li><code>1 &lt;= nums.length &lt;= 1000</code></li>
75+
<li><code>1 &lt;= nums[i] &lt;= 1000</code></li>
76+
<li><code>1 &lt;= k &lt;= 100</code></li>
77+
</ul>
78+
79+
<!-- description:end -->
80+
81+
## Solutions
82+
83+
<!-- solution:start -->
84+
85+
### Solution 1
86+
87+
<!-- tabs:start -->
88+
89+
#### Python3
90+
91+
```python
92+
93+
```
94+
95+
#### Java
96+
97+
```java
98+
99+
```
100+
101+
#### C++
102+
103+
```cpp
104+
105+
```
106+
107+
#### Go
108+
109+
```go
110+
111+
```
112+
113+
<!-- tabs:end -->
114+
115+
<!-- solution:end -->
116+
117+
<!-- problem:end -->
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
---
2+
comments: true
3+
difficulty: 中等
4+
edit_url: https://github.com/doocs/leetcode/edit/main/solution/3500-3599/3513.Number%20of%20Unique%20XOR%20Triplets%20I/README.md
5+
---
6+
7+
<!-- problem:start -->
8+
9+
# [3513. 不同 XOR 三元组的数目 I](https://leetcode.cn/problems/number-of-unique-xor-triplets-i)
10+
11+
[English Version](/solution/3500-3599/3513.Number%20of%20Unique%20XOR%20Triplets%20I/README_EN.md)
12+
13+
## 题目描述
14+
15+
<!-- description:start -->
16+
17+
<p>给你一个长度为 <code>n</code> 的整数数组 <code>nums</code>,其中 <code>nums</code> 是范围 <code>[1, n]</code> 内所有数的&nbsp;<strong>排列&nbsp;</strong>。</p>
18+
19+
<p><strong>XOR 三元组</strong> 定义为三个元素的异或值 <code>nums[i] XOR nums[j] XOR nums[k]</code>,其中 <code>i &lt;= j &lt;= k</code>。</p>
20+
21+
<p>返回所有可能三元组 <code>(i, j, k)</code> 中&nbsp;<strong>不同&nbsp;</strong>的 XOR 值的数量。</p>
22+
23+
<p><strong>排列</strong> 是一个集合中所有元素的重新排列。</p>
24+
25+
<p>&nbsp;</p>
26+
27+
<p><strong class="example">示例 1:</strong></p>
28+
29+
<div class="example-block">
30+
<p><strong>输入:</strong> <span class="example-io">nums = [1,2]</span></p>
31+
32+
<p><strong>输出:</strong> <span class="example-io">2</span></p>
33+
34+
<p><strong>解释:</strong></p>
35+
36+
<p>所有可能的 XOR 三元组值为:</p>
37+
38+
<ul>
39+
<li><code>(0, 0, 0) → 1 XOR 1 XOR 1 = 1</code></li>
40+
<li><code>(0, 0, 1) → 1 XOR 1 XOR 2 = 2</code></li>
41+
<li><code>(0, 1, 1) → 1 XOR 2 XOR 2 = 1</code></li>
42+
<li><code>(1, 1, 1) → 2 XOR 2 XOR 2 = 2</code></li>
43+
</ul>
44+
45+
<p>不同的 XOR 值为 <code>{1, 2}</code>,因此输出为 2。</p>
46+
</div>
47+
48+
<p><strong class="example">示例 2:</strong></p>
49+
50+
<div class="example-block">
51+
<p><strong>输入:</strong> <span class="example-io">nums = [3,1,2]</span></p>
52+
53+
<p><strong>输出:</strong> <span class="example-io">4</span></p>
54+
55+
<p><strong>解释:</strong></p>
56+
57+
<p>可能的 XOR 三元组值包括:</p>
58+
59+
<ul>
60+
<li><code>(0, 0, 0) → 3 XOR 3 XOR 3 = 3</code></li>
61+
<li><code>(0, 0, 1) → 3 XOR 3 XOR 1 = 1</code></li>
62+
<li><code>(0, 0, 2) → 3 XOR 3 XOR 2 = 2</code></li>
63+
<li><code>(0, 1, 2) → 3 XOR 1 XOR 2 = 0</code></li>
64+
</ul>
65+
66+
<p>不同的 XOR 值为 <code>{0, 1, 2, 3}</code>,因此输出为 4。</p>
67+
</div>
68+
69+
<p>&nbsp;</p>
70+
71+
<p><strong>提示:</strong></p>
72+
73+
<ul>
74+
<li><code>1 &lt;= n == nums.length &lt;= 10<sup>5</sup></code></li>
75+
<li><code>1 &lt;= nums[i] &lt;= n</code></li>
76+
<li><code>nums</code> 是从 <code>1</code> 到 <code>n</code> 的整数的一个排列。</li>
77+
</ul>
78+
79+
<!-- description:end -->
80+
81+
## 解法
82+
83+
<!-- solution:start -->
84+
85+
### 方法一
86+
87+
<!-- tabs:start -->
88+
89+
#### Python3
90+
91+
```python
92+
93+
```
94+
95+
#### Java
96+
97+
```java
98+
99+
```
100+
101+
#### C++
102+
103+
```cpp
104+
105+
```
106+
107+
#### Go
108+
109+
```go
110+
111+
```
112+
113+
<!-- tabs:end -->
114+
115+
<!-- solution:end -->
116+
117+
<!-- problem:end -->

0 commit comments

Comments
 (0)