Skip to content

Commit c255882

Browse files
committed
feat: add solutions to lc problem: No.2028
No.2028.Find Missing Observations
1 parent dfde5b9 commit c255882

File tree

19 files changed

+823
-4
lines changed

19 files changed

+823
-4
lines changed

solution/2000-2099/2028.Find Missing Observations/README.md

Lines changed: 68 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,15 +71,41 @@
7171
<!-- 这里可写当前语言的特殊实现逻辑 -->
7272

7373
```python
74-
74+
class Solution:
75+
def missingRolls(self, rolls: List[int], mean: int, n: int) -> List[int]:
76+
m = len(rolls)
77+
s = (n + m) * mean - sum(rolls)
78+
if s > n * 6 or s < n:
79+
return []
80+
ans = [s // n] * n
81+
for i in range(s % n):
82+
ans[i] += 1
83+
return ans
7584
```
7685

7786
### **Java**
7887

7988
<!-- 这里可写当前语言的特殊实现逻辑 -->
8089

8190
```java
82-
91+
class Solution {
92+
public int[] missingRolls(int[] rolls, int mean, int n) {
93+
int m = rolls.length;
94+
int s = (n + m) * mean;
95+
for (int v : rolls) {
96+
s -= v;
97+
}
98+
if (s > n * 6 || s < n) {
99+
return new int[0];
100+
}
101+
int[] ans = new int[n];
102+
Arrays.fill(ans, s / n);
103+
for (int i = 0; i < s % n; ++i) {
104+
++ans[i];
105+
}
106+
return ans;
107+
}
108+
}
83109
```
84110

85111
### **TypeScript**
@@ -155,6 +181,46 @@ impl Solution {
155181
}
156182
```
157183

184+
### **C++**
185+
186+
```cpp
187+
class Solution {
188+
public:
189+
vector<int> missingRolls(vector<int>& rolls, int mean, int n) {
190+
int m = rolls.size();
191+
int s = (n + m) * mean;
192+
for (int& v : rolls) s -= v;
193+
if (s > n * 6 || s < n) return {};
194+
vector<int> ans(n, s / n);
195+
for (int i = 0; i < s % n; ++i) ++ans[i];
196+
return ans;
197+
}
198+
};
199+
```
200+
201+
### **Go**
202+
203+
```go
204+
func missingRolls(rolls []int, mean int, n int) []int {
205+
m := len(rolls)
206+
s := (n + m) * mean
207+
for _, v := range rolls {
208+
s -= v
209+
}
210+
if s > n*6 || s < n {
211+
return []int{}
212+
}
213+
ans := make([]int, n)
214+
for i, j := 0, 0; i < n; i, j = i+1, j+1 {
215+
ans[i] = s / n
216+
if j < s%n {
217+
ans[i]++
218+
}
219+
}
220+
return ans
221+
}
222+
```
223+
158224
### **...**
159225

160226
```

solution/2000-2099/2028.Find Missing Observations/README_EN.md

Lines changed: 68 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,13 +55,39 @@
5555
### **Python3**
5656

5757
```python
58-
58+
class Solution:
59+
def missingRolls(self, rolls: List[int], mean: int, n: int) -> List[int]:
60+
m = len(rolls)
61+
s = (n + m) * mean - sum(rolls)
62+
if s > n * 6 or s < n:
63+
return []
64+
ans = [s // n] * n
65+
for i in range(s % n):
66+
ans[i] += 1
67+
return ans
5968
```
6069

6170
### **Java**
6271

6372
```java
64-
73+
class Solution {
74+
public int[] missingRolls(int[] rolls, int mean, int n) {
75+
int m = rolls.length;
76+
int s = (n + m) * mean;
77+
for (int v : rolls) {
78+
s -= v;
79+
}
80+
if (s > n * 6 || s < n) {
81+
return new int[0];
82+
}
83+
int[] ans = new int[n];
84+
Arrays.fill(ans, s / n);
85+
for (int i = 0; i < s % n; ++i) {
86+
++ans[i];
87+
}
88+
return ans;
89+
}
90+
}
6591
```
6692

6793
### **TypeScript**
@@ -137,6 +163,46 @@ impl Solution {
137163
}
138164
```
139165

166+
### **C++**
167+
168+
```cpp
169+
class Solution {
170+
public:
171+
vector<int> missingRolls(vector<int>& rolls, int mean, int n) {
172+
int m = rolls.size();
173+
int s = (n + m) * mean;
174+
for (int& v : rolls) s -= v;
175+
if (s > n * 6 || s < n) return {};
176+
vector<int> ans(n, s / n);
177+
for (int i = 0; i < s % n; ++i) ++ans[i];
178+
return ans;
179+
}
180+
};
181+
```
182+
183+
### **Go**
184+
185+
```go
186+
func missingRolls(rolls []int, mean int, n int) []int {
187+
m := len(rolls)
188+
s := (n + m) * mean
189+
for _, v := range rolls {
190+
s -= v
191+
}
192+
if s > n*6 || s < n {
193+
return []int{}
194+
}
195+
ans := make([]int, n)
196+
for i, j := 0, 0; i < n; i, j = i+1, j+1 {
197+
ans[i] = s / n
198+
if j < s%n {
199+
ans[i]++
200+
}
201+
}
202+
return ans
203+
}
204+
```
205+
140206
### **...**
141207

142208
```
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
class Solution {
2+
public:
3+
vector<int> missingRolls(vector<int>& rolls, int mean, int n) {
4+
int m = rolls.size();
5+
int s = (n + m) * mean;
6+
for (int& v : rolls) s -= v;
7+
if (s > n * 6 || s < n) return {};
8+
vector<int> ans(n, s / n);
9+
for (int i = 0; i < s % n; ++i) ++ans[i];
10+
return ans;
11+
}
12+
};
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
func missingRolls(rolls []int, mean int, n int) []int {
2+
m := len(rolls)
3+
s := (n + m) * mean
4+
for _, v := range rolls {
5+
s -= v
6+
}
7+
if s > n*6 || s < n {
8+
return []int{}
9+
}
10+
ans := make([]int, n)
11+
for i, j := 0, 0; i < n; i, j = i+1, j+1 {
12+
ans[i] = s / n
13+
if j < s%n {
14+
ans[i]++
15+
}
16+
}
17+
return ans
18+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
class Solution {
2+
public int[] missingRolls(int[] rolls, int mean, int n) {
3+
int m = rolls.length;
4+
int s = (n + m) * mean;
5+
for (int v : rolls) {
6+
s -= v;
7+
}
8+
if (s > n * 6 || s < n) {
9+
return new int[0];
10+
}
11+
int[] ans = new int[n];
12+
Arrays.fill(ans, s / n);
13+
for (int i = 0; i < s % n; ++i) {
14+
++ans[i];
15+
}
16+
return ans;
17+
}
18+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
class Solution:
2+
def missingRolls(self, rolls: List[int], mean: int, n: int) -> List[int]:
3+
m = len(rolls)
4+
s = (n + m) * mean - sum(rolls)
5+
if s > n * 6 or s < n:
6+
return []
7+
ans = [s // n] * n
8+
for i in range(s % n):
9+
ans[i] += 1
10+
return ans
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
# [2215. 找出两数组的不同](https://leetcode-cn.com/problems/find-the-difference-of-two-arrays)
2+
3+
[English Version](/solution/2200-2299/2215.Find%20the%20Difference%20of%20Two%20Arrays/README_EN.md)
4+
5+
## 题目描述
6+
7+
<!-- 这里写题目描述 -->
8+
9+
<p>给你两个下标从 <code>0</code> 开始的整数数组 <code>nums1</code> 和 <code>nums2</code> ,请你返回一个长度为 <code>2</code> 的列表 <code>answer</code> ,其中:</p>
10+
11+
<ul>
12+
<li><code>answer[0]</code> 是 <code>nums1</code> 中所有<strong> 不 </strong>存在于 <code>nums2</code> 中的 <strong>不同</strong> 整数组成的列表。</li>
13+
<li><code>answer[1]</code> 是 <code>nums2</code> 中所有<strong> 不 </strong>存在于 <code>nums1</code> 中的 <strong>不同</strong> 整数组成的列表。</li>
14+
</ul>
15+
16+
<p><strong>注意:</strong>列表中的整数可以按 <strong>任意</strong> 顺序返回。</p>
17+
18+
<p>&nbsp;</p>
19+
20+
<p><strong>示例 1:</strong></p>
21+
22+
<pre>
23+
<strong>输入:</strong>nums1 = [1,2,3], nums2 = [2,4,6]
24+
<strong>输出:</strong>[[1,3],[4,6]]
25+
<strong>解释:
26+
</strong>对于 nums1 ,nums1[1] = 2 出现在 nums2 中下标 0 处,然而 nums1[0] = 1 和 nums1[2] = 3 没有出现在 nums2 中。因此,answer[0] = [1,3]。
27+
对于 nums2 ,nums2[0] = 2 出现在 nums1 中下标 1 处,然而 nums2[1] = 4 和 nums2[2] = 6 没有出现在 nums2 中。因此,answer[1] = [4,6]。</pre>
28+
29+
<p><strong>示例 2:</strong></p>
30+
31+
<pre>
32+
<strong>输入:</strong>nums1 = [1,2,3,3], nums2 = [1,1,2,2]
33+
<strong>输出:</strong>[[3],[]]
34+
<strong>解释:
35+
</strong>对于 nums1 ,nums1[2] 和 nums1[3] 没有出现在 nums2 中。由于 nums1[2] == nums1[3] ,二者的值只需要在 answer[0] 中出现一次,故 answer[0] = [3]。
36+
nums2 中的每个整数都在 nums1 中出现,因此,answer[1] = [] 。
37+
</pre>
38+
39+
<p>&nbsp;</p>
40+
41+
<p><strong>提示:</strong></p>
42+
43+
<ul>
44+
<li><code>1 &lt;= nums1.length, nums2.length &lt;= 1000</code></li>
45+
<li><code>-1000 &lt;= nums1[i], nums2[i] &lt;= 1000</code></li>
46+
</ul>
47+
48+
## 解法
49+
50+
<!-- 这里可写通用的实现逻辑 -->
51+
52+
<!-- tabs:start -->
53+
54+
### **Python3**
55+
56+
<!-- 这里可写当前语言的特殊实现逻辑 -->
57+
58+
```python
59+
60+
```
61+
62+
### **Java**
63+
64+
<!-- 这里可写当前语言的特殊实现逻辑 -->
65+
66+
```java
67+
68+
```
69+
70+
### **TypeScript**
71+
72+
```ts
73+
74+
```
75+
76+
### **...**
77+
78+
```
79+
80+
```
81+
82+
<!-- tabs:end -->

0 commit comments

Comments
 (0)