Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit e1e72e7

Browse files
committed
feat: add solutions to lc problems: No.2540, 2541
- No.2540.Minimum Common Value - No.2541.Minimum Operations to Make Array Equal II
1 parent 5327c60 commit e1e72e7

File tree

10 files changed

+426
-0
lines changed

10 files changed

+426
-0
lines changed

‎solution/2500-2599/2540.Minimum Common Value/README.md‎

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,72 @@ func getCommon(nums1 []int, nums2 []int) int {
131131
}
132132
```
133133

134+
### **TypeScript**
135+
136+
```ts
137+
function getCommon(nums1: number[], nums2: number[]): number {
138+
const m = nums1.length;
139+
const n = nums2.length;
140+
let i = 0;
141+
let j = 0;
142+
while (i < m && j < n) {
143+
if (nums1[i] === nums2[j]) {
144+
return nums1[i];
145+
}
146+
if (nums1[i] < nums2[j]) {
147+
i++;
148+
} else {
149+
j++;
150+
}
151+
}
152+
return -1;
153+
}
154+
```
155+
156+
### **Rust**
157+
158+
```rust
159+
impl Solution {
160+
pub fn get_common(nums1: Vec<i32>, nums2: Vec<i32>) -> i32 {
161+
let m = nums1.len();
162+
let n = nums2.len();
163+
let mut i = 0;
164+
let mut j = 0;
165+
while i < m && j < n {
166+
if nums1[i] == nums2[j] {
167+
return nums1[i];
168+
}
169+
if nums1[i] < nums2[j] {
170+
i += 1;
171+
} else {
172+
j += 1;
173+
}
174+
}
175+
-1
176+
}
177+
}
178+
```
179+
180+
### **C**
181+
182+
```c
183+
int getCommon(int *nums1, int nums1Size, int *nums2, int nums2Size) {
184+
int i = 0;
185+
int j = 0;
186+
while (i < nums1Size && j < nums2Size) {
187+
if (nums1[i] == nums2[j]) {
188+
return nums1[i];
189+
}
190+
if (nums1[i] < nums2[j]) {
191+
i++;
192+
} else {
193+
j++;
194+
}
195+
}
196+
return -1;
197+
}
198+
```
199+
134200
### **...**
135201
136202
```

‎solution/2500-2599/2540.Minimum Common Value/README_EN.md‎

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,72 @@ func getCommon(nums1 []int, nums2 []int) int {
117117
}
118118
```
119119

120+
### **TypeScript**
121+
122+
```ts
123+
function getCommon(nums1: number[], nums2: number[]): number {
124+
const m = nums1.length;
125+
const n = nums2.length;
126+
let i = 0;
127+
let j = 0;
128+
while (i < m && j < n) {
129+
if (nums1[i] === nums2[j]) {
130+
return nums1[i];
131+
}
132+
if (nums1[i] < nums2[j]) {
133+
i++;
134+
} else {
135+
j++;
136+
}
137+
}
138+
return -1;
139+
}
140+
```
141+
142+
### **Rust**
143+
144+
```rust
145+
impl Solution {
146+
pub fn get_common(nums1: Vec<i32>, nums2: Vec<i32>) -> i32 {
147+
let m = nums1.len();
148+
let n = nums2.len();
149+
let mut i = 0;
150+
let mut j = 0;
151+
while i < m && j < n {
152+
if nums1[i] == nums2[j] {
153+
return nums1[i];
154+
}
155+
if nums1[i] < nums2[j] {
156+
i += 1;
157+
} else {
158+
j += 1;
159+
}
160+
}
161+
-1
162+
}
163+
}
164+
```
165+
166+
### **C**
167+
168+
```c
169+
int getCommon(int *nums1, int nums1Size, int *nums2, int nums2Size) {
170+
int i = 0;
171+
int j = 0;
172+
while (i < nums1Size && j < nums2Size) {
173+
if (nums1[i] == nums2[j]) {
174+
return nums1[i];
175+
}
176+
if (nums1[i] < nums2[j]) {
177+
i++;
178+
} else {
179+
j++;
180+
}
181+
}
182+
return -1;
183+
}
184+
```
185+
120186
### **...**
121187
122188
```
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
int getCommon(int *nums1, int nums1Size, int *nums2, int nums2Size) {
2+
int i = 0;
3+
int j = 0;
4+
while (i < nums1Size && j < nums2Size) {
5+
if (nums1[i] == nums2[j]) {
6+
return nums1[i];
7+
}
8+
if (nums1[i] < nums2[j]) {
9+
i++;
10+
} else {
11+
j++;
12+
}
13+
}
14+
return -1;
15+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
impl Solution {
2+
pub fn get_common(nums1: Vec<i32>, nums2: Vec<i32>) -> i32 {
3+
let m = nums1.len();
4+
let n = nums2.len();
5+
let mut i = 0;
6+
let mut j = 0;
7+
while i < m && j < n {
8+
if nums1[i] == nums2[j] {
9+
return nums1[i];
10+
}
11+
if nums1[i] < nums2[j] {
12+
i += 1;
13+
} else {
14+
j += 1;
15+
}
16+
}
17+
-1
18+
}
19+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
function getCommon(nums1: number[], nums2: number[]): number {
2+
const m = nums1.length;
3+
const n = nums2.length;
4+
let i = 0;
5+
let j = 0;
6+
while (i < m && j < n) {
7+
if (nums1[i] === nums2[j]) {
8+
return nums1[i];
9+
}
10+
if (nums1[i] < nums2[j]) {
11+
i++;
12+
} else {
13+
j++;
14+
}
15+
}
16+
return -1;
17+
}

‎solution/2500-2599/2541.Minimum Operations to Make Array Equal II/README.md‎

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,92 @@ func abs(x int) int {
171171
}
172172
```
173173

174+
### **TypeScript**
175+
176+
```ts
177+
function minOperations(nums1: number[], nums2: number[], k: number): number {
178+
const n = nums1.length;
179+
if (k === 0) {
180+
return nums1.every((v, i) => v === nums2[i]) ? 0 : -1;
181+
}
182+
let sum1 = 0;
183+
let sum2 = 0;
184+
for (let i = 0; i < n; i++) {
185+
const diff = nums1[i] - nums2[i];
186+
sum1 += diff;
187+
if (diff % k !== 0) {
188+
return -1;
189+
}
190+
sum2 += Math.abs(diff);
191+
}
192+
if (sum1 !== 0) {
193+
return -1;
194+
}
195+
return sum2 / (k * 2);
196+
}
197+
```
198+
199+
### **Rust**
200+
201+
```rust
202+
impl Solution {
203+
pub fn min_operations(nums1: Vec<i32>, nums2: Vec<i32>, k: i32) -> i64 {
204+
let k = k as i64;
205+
let n = nums1.len();
206+
if k == 0 {
207+
return if nums1.iter().enumerate().all(|(i, &v)| v == nums2[i]) {
208+
0
209+
} else {
210+
-1
211+
};
212+
}
213+
let mut sum1 = 0;
214+
let mut sum2 = 0;
215+
for i in 0..n {
216+
let diff = (nums1[i] - nums2[i]) as i64;
217+
sum1 += diff;
218+
if diff % k != 0 {
219+
return -1;
220+
}
221+
sum2 += diff.abs();
222+
}
223+
if sum1 != 0 {
224+
return -1;
225+
}
226+
sum2 / (k * 2)
227+
}
228+
}
229+
```
230+
231+
### **C**
232+
233+
```c
234+
long long minOperations(int *nums1, int nums1Size, int *nums2, int nums2Size, int k) {
235+
if (k == 0) {
236+
for (int i = 0; i < nums1Size; i++) {
237+
if (nums1[i] != nums2[i]) {
238+
return -1;
239+
}
240+
}
241+
return 0;
242+
}
243+
long long sum1 = 0;
244+
long long sum2 = 0;
245+
for (int i = 0; i < nums1Size; i++) {
246+
long long diff = nums1[i] - nums2[i];
247+
sum1 += diff;
248+
if (diff % k != 0) {
249+
return -1;
250+
}
251+
sum2 += llabs(diff);
252+
}
253+
if (sum1 != 0) {
254+
return -1;
255+
}
256+
return sum2 / (k * 2);
257+
}
258+
```
259+
174260
### **...**
175261
176262
```

‎solution/2500-2599/2541.Minimum Operations to Make Array Equal II/README_EN.md‎

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,92 @@ func abs(x int) int {
153153
}
154154
```
155155

156+
### **TypeScript**
157+
158+
```ts
159+
function minOperations(nums1: number[], nums2: number[], k: number): number {
160+
const n = nums1.length;
161+
if (k === 0) {
162+
return nums1.every((v, i) => v === nums2[i]) ? 0 : -1;
163+
}
164+
let sum1 = 0;
165+
let sum2 = 0;
166+
for (let i = 0; i < n; i++) {
167+
const diff = nums1[i] - nums2[i];
168+
sum1 += diff;
169+
if (diff % k !== 0) {
170+
return -1;
171+
}
172+
sum2 += Math.abs(diff);
173+
}
174+
if (sum1 !== 0) {
175+
return -1;
176+
}
177+
return sum2 / (k * 2);
178+
}
179+
```
180+
181+
### **Rust**
182+
183+
```rust
184+
impl Solution {
185+
pub fn min_operations(nums1: Vec<i32>, nums2: Vec<i32>, k: i32) -> i64 {
186+
let k = k as i64;
187+
let n = nums1.len();
188+
if k == 0 {
189+
return if nums1.iter().enumerate().all(|(i, &v)| v == nums2[i]) {
190+
0
191+
} else {
192+
-1
193+
};
194+
}
195+
let mut sum1 = 0;
196+
let mut sum2 = 0;
197+
for i in 0..n {
198+
let diff = (nums1[i] - nums2[i]) as i64;
199+
sum1 += diff;
200+
if diff % k != 0 {
201+
return -1;
202+
}
203+
sum2 += diff.abs();
204+
}
205+
if sum1 != 0 {
206+
return -1;
207+
}
208+
sum2 / (k * 2)
209+
}
210+
}
211+
```
212+
213+
### **C**
214+
215+
```c
216+
long long minOperations(int *nums1, int nums1Size, int *nums2, int nums2Size, int k) {
217+
if (k == 0) {
218+
for (int i = 0; i < nums1Size; i++) {
219+
if (nums1[i] != nums2[i]) {
220+
return -1;
221+
}
222+
}
223+
return 0;
224+
}
225+
long long sum1 = 0;
226+
long long sum2 = 0;
227+
for (int i = 0; i < nums1Size; i++) {
228+
long long diff = nums1[i] - nums2[i];
229+
sum1 += diff;
230+
if (diff % k != 0) {
231+
return -1;
232+
}
233+
sum2 += llabs(diff);
234+
}
235+
if (sum1 != 0) {
236+
return -1;
237+
}
238+
return sum2 / (k * 2);
239+
}
240+
```
241+
156242
### **...**
157243
158244
```

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /