Skip to content

Commit 6b4a712

Browse files
committed
feat: add solutions to lc problem: No.1846
No.1846.Maximum Element After Decreasing and Rearranging
1 parent a92fdd8 commit 6b4a712

File tree

6 files changed

+182
-2
lines changed

6 files changed

+182
-2
lines changed

solution/1800-1899/1846.Maximum Element After Decreasing and Rearranging/README.md

+65-1
Original file line numberDiff line numberDiff line change
@@ -69,22 +69,86 @@ arr 中最大元素为 3 。
6969

7070
<!-- 这里可写通用的实现逻辑 -->
7171

72+
**方法一:排序 + 贪心**
73+
7274
<!-- tabs:start -->
7375

7476
### **Python3**
7577

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

7880
```python
79-
81+
class Solution:
82+
def maximumElementAfterDecrementingAndRearranging(self, arr: List[int]) -> int:
83+
arr.sort()
84+
arr[0] = 1
85+
for i in range(1, len(arr)):
86+
d = max(0, arr[i] - arr[i - 1] - 1)
87+
arr[i] -= d
88+
return max(arr)
8089
```
8190

8291
### **Java**
8392

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

8695
```java
96+
class Solution {
97+
public int maximumElementAfterDecrementingAndRearranging(int[] arr) {
98+
Arrays.sort(arr);
99+
arr[0] = 1;
100+
int ans = 1;
101+
for (int i = 1; i < arr.length; ++i) {
102+
int d = Math.max(0, arr[i] - arr[i - 1] - 1);
103+
arr[i] -= d;
104+
ans = Math.max(ans, arr[i]);
105+
}
106+
return ans;
107+
}
108+
}
109+
```
110+
111+
### **C++**
112+
113+
```cpp
114+
class Solution {
115+
public:
116+
int maximumElementAfterDecrementingAndRearranging(vector<int>& arr) {
117+
sort(arr.begin(), arr.end());
118+
arr[0] = 1;
119+
int ans = 1;
120+
for (int i = 1; i < arr.size(); ++i)
121+
{
122+
int d = max(0, arr[i] - arr[i - 1] - 1);
123+
arr[i] -= d;
124+
ans = max(ans, arr[i]);
125+
}
126+
return ans;
127+
}
128+
};
129+
```
87130
131+
### **Go**
132+
133+
```go
134+
func maximumElementAfterDecrementingAndRearranging(arr []int) int {
135+
sort.Ints(arr)
136+
ans := 1
137+
arr[0] = 1
138+
for i := 1; i < len(arr); i++ {
139+
d := max(0, arr[i]-arr[i-1]-1)
140+
arr[i] -= d
141+
ans = max(ans, arr[i])
142+
}
143+
return ans
144+
}
145+
146+
func max(a, b int) int {
147+
if a > b {
148+
return a
149+
}
150+
return b
151+
}
88152
```
89153

90154
### **...**

solution/1800-1899/1846.Maximum Element After Decreasing and Rearranging/README_EN.md

+63-1
Original file line numberDiff line numberDiff line change
@@ -68,13 +68,75 @@ The largest element in <code>arr is 3.</code>
6868
### **Python3**
6969

7070
```python
71-
71+
class Solution:
72+
def maximumElementAfterDecrementingAndRearranging(self, arr: List[int]) -> int:
73+
arr.sort()
74+
arr[0] = 1
75+
for i in range(1, len(arr)):
76+
d = max(0, arr[i] - arr[i - 1] - 1)
77+
arr[i] -= d
78+
return max(arr)
7279
```
7380

7481
### **Java**
7582

7683
```java
84+
class Solution {
85+
public int maximumElementAfterDecrementingAndRearranging(int[] arr) {
86+
Arrays.sort(arr);
87+
arr[0] = 1;
88+
int ans = 1;
89+
for (int i = 1; i < arr.length; ++i) {
90+
int d = Math.max(0, arr[i] - arr[i - 1] - 1);
91+
arr[i] -= d;
92+
ans = Math.max(ans, arr[i]);
93+
}
94+
return ans;
95+
}
96+
}
97+
```
98+
99+
### **C++**
100+
101+
```cpp
102+
class Solution {
103+
public:
104+
int maximumElementAfterDecrementingAndRearranging(vector<int>& arr) {
105+
sort(arr.begin(), arr.end());
106+
arr[0] = 1;
107+
int ans = 1;
108+
for (int i = 1; i < arr.size(); ++i)
109+
{
110+
int d = max(0, arr[i] - arr[i - 1] - 1);
111+
arr[i] -= d;
112+
ans = max(ans, arr[i]);
113+
}
114+
return ans;
115+
}
116+
};
117+
```
77118
119+
### **Go**
120+
121+
```go
122+
func maximumElementAfterDecrementingAndRearranging(arr []int) int {
123+
sort.Ints(arr)
124+
ans := 1
125+
arr[0] = 1
126+
for i := 1; i < len(arr); i++ {
127+
d := max(0, arr[i]-arr[i-1]-1)
128+
arr[i] -= d
129+
ans = max(ans, arr[i])
130+
}
131+
return ans
132+
}
133+
134+
func max(a, b int) int {
135+
if a > b {
136+
return a
137+
}
138+
return b
139+
}
78140
```
79141

80142
### **...**
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
class Solution {
2+
public:
3+
int maximumElementAfterDecrementingAndRearranging(vector<int>& arr) {
4+
sort(arr.begin(), arr.end());
5+
arr[0] = 1;
6+
int ans = 1;
7+
for (int i = 1; i < arr.size(); ++i)
8+
{
9+
int d = max(0, arr[i] - arr[i - 1] - 1);
10+
arr[i] -= d;
11+
ans = max(ans, arr[i]);
12+
}
13+
return ans;
14+
}
15+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
func maximumElementAfterDecrementingAndRearranging(arr []int) int {
2+
sort.Ints(arr)
3+
ans := 1
4+
arr[0] = 1
5+
for i := 1; i < len(arr); i++ {
6+
d := max(0, arr[i]-arr[i-1]-1)
7+
arr[i] -= d
8+
ans = max(ans, arr[i])
9+
}
10+
return ans
11+
}
12+
13+
func max(a, b int) int {
14+
if a > b {
15+
return a
16+
}
17+
return b
18+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
class Solution {
2+
public int maximumElementAfterDecrementingAndRearranging(int[] arr) {
3+
Arrays.sort(arr);
4+
arr[0] = 1;
5+
int ans = 1;
6+
for (int i = 1; i < arr.length; ++i) {
7+
int d = Math.max(0, arr[i] - arr[i - 1] - 1);
8+
arr[i] -= d;
9+
ans = Math.max(ans, arr[i]);
10+
}
11+
return ans;
12+
}
13+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
class Solution:
2+
def maximumElementAfterDecrementingAndRearranging(self, arr: List[int]) -> int:
3+
arr.sort()
4+
arr[0] = 1
5+
for i in range(1, len(arr)):
6+
d = max(0, arr[i] - arr[i - 1] - 1)
7+
arr[i] -= d
8+
return max(arr)

0 commit comments

Comments
 (0)