Skip to content

Commit 66b1edc

Browse files
committed
feat: add python and java solutions to leetcode problem: No.1464
1464. Maximum Product of Two Elements in an Array
1 parent 9e8e4d2 commit 66b1edc

File tree

4 files changed

+86
-4
lines changed

4 files changed

+86
-4
lines changed

solution/1400-1499/1464.Maximum Product of Two Elements in an Array/README.md

+30-2
Original file line numberDiff line numberDiff line change
@@ -44,22 +44,50 @@
4444

4545
<!-- 这里可写通用的实现逻辑 -->
4646

47+
找出数组中最大的两个元素的下标 i、j,然后计算 `(nums[i]-1)*(nums[j]-1)` 即可。
48+
4749
<!-- tabs:start -->
4850

4951
### **Python3**
5052

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

5355
```python
54-
56+
class Solution:
57+
def maxProduct(self, nums: List[int]) -> int:
58+
i = 0 if nums[0] > nums[1] else 1
59+
j = 1 - i
60+
for k in range(2, len(nums)):
61+
if nums[k] > nums[i]:
62+
j = k
63+
i, j = j, i
64+
elif nums[k] > nums[j]:
65+
j = k
66+
return (nums[i] - 1) * (nums[j] - 1)
5567
```
5668

5769
### **Java**
5870

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

6173
```java
62-
74+
class Solution {
75+
public int maxProduct(int[] nums) {
76+
int i = nums[0] > nums[1] ? 0 : 1;
77+
int j = 1 - i;
78+
for (int k = 2; k < nums.length; ++k) {
79+
if (nums[k] > nums[i]) {
80+
j = k;
81+
int t = i;
82+
i = j;
83+
j = t;
84+
} else if (nums[k] > nums[j]) {
85+
j = k;
86+
}
87+
}
88+
return (nums[i] - 1) * (nums[j] - 1);
89+
}
90+
}
6391
```
6492

6593
### **...**

solution/1400-1499/1464.Maximum Product of Two Elements in an Array/README_EN.md

+28-2
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,39 @@ Given the array of integers <code>nums</code>, you will choose two different ind
4545
### **Python3**
4646

4747
```python
48-
48+
class Solution:
49+
def maxProduct(self, nums: List[int]) -> int:
50+
i = 0 if nums[0] > nums[1] else 1
51+
j = 1 - i
52+
for k in range(2, len(nums)):
53+
if nums[k] > nums[i]:
54+
j = k
55+
i, j = j, i
56+
elif nums[k] > nums[j]:
57+
j = k
58+
return (nums[i] - 1) * (nums[j] - 1)
4959
```
5060

5161
### **Java**
5262

5363
```java
54-
64+
class Solution {
65+
public int maxProduct(int[] nums) {
66+
int i = nums[0] > nums[1] ? 0 : 1;
67+
int j = 1 - i;
68+
for (int k = 2; k < nums.length; ++k) {
69+
if (nums[k] > nums[i]) {
70+
j = k;
71+
int t = i;
72+
i = j;
73+
j = t;
74+
} else if (nums[k] > nums[j]) {
75+
j = k;
76+
}
77+
}
78+
return (nums[i] - 1) * (nums[j] - 1);
79+
}
80+
}
5581
```
5682

5783
### **...**
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
class Solution {
2+
public int maxProduct(int[] nums) {
3+
int i = nums[0] > nums[1] ? 0 : 1;
4+
int j = 1 - i;
5+
for (int k = 2; k < nums.length; ++k) {
6+
if (nums[k] > nums[i]) {
7+
j = k;
8+
int t = i;
9+
i = j;
10+
j = t;
11+
} else if (nums[k] > nums[j]) {
12+
j = k;
13+
}
14+
}
15+
return (nums[i] - 1) * (nums[j] - 1);
16+
}
17+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
class Solution:
2+
def maxProduct(self, nums: List[int]) -> int:
3+
i = 0 if nums[0] > nums[1] else 1
4+
j = 1 - i
5+
for k in range(2, len(nums)):
6+
if nums[k] > nums[i]:
7+
j = k
8+
i, j = j, i
9+
elif nums[k] > nums[j]:
10+
j = k
11+
return (nums[i] - 1) * (nums[j] - 1)

0 commit comments

Comments
 (0)