File tree 6 files changed +179
-2
lines changed
solution/0900-0999/0945.Minimum Increment to Make Array Unique
6 files changed +179
-2
lines changed Original file line number Diff line number Diff line change 44
44
45
45
<!-- 这里可写通用的实现逻辑 -->
46
46
47
+ ** 方法一:排序 + 贪心**
48
+
47
49
<!-- tabs:start -->
48
50
49
51
### ** Python3**
50
52
51
53
<!-- 这里可写当前语言的特殊实现逻辑 -->
52
54
53
55
``` python
54
-
56
+ class Solution :
57
+ def minIncrementForUnique (self , nums : List[int ]) -> int :
58
+ nums.sort()
59
+ ans = 0
60
+ for i in range (1 , len (nums)):
61
+ if nums[i] <= nums[i - 1 ]:
62
+ d = nums[i - 1 ] - nums[i] + 1
63
+ nums[i] += d
64
+ ans += d
65
+ return ans
55
66
```
56
67
57
68
### ** Java**
58
69
59
70
<!-- 这里可写当前语言的特殊实现逻辑 -->
60
71
61
72
``` java
73
+ class Solution {
74
+ public int minIncrementForUnique (int [] nums ) {
75
+ Arrays . sort(nums);
76
+ int ans = 0 ;
77
+ for (int i = 1 ; i < nums. length; ++ i) {
78
+ if (nums[i] <= nums[i - 1 ]) {
79
+ int d = nums[i - 1 ] - nums[i] + 1 ;
80
+ nums[i] += d;
81
+ ans += d;
82
+ }
83
+ }
84
+ return ans;
85
+ }
86
+ }
87
+ ```
88
+
89
+ ### ** C++**
90
+
91
+ ``` cpp
92
+ class Solution {
93
+ public:
94
+ int minIncrementForUnique(vector<int >& nums) {
95
+ sort(nums.begin(), nums.end());
96
+ int ans = 0;
97
+ for (int i = 1; i < nums.size(); ++i)
98
+ {
99
+ if (nums[ i] <= nums[ i - 1] )
100
+ {
101
+ int d = nums[ i - 1] - nums[ i] + 1;
102
+ nums[ i] += d;
103
+ ans += d;
104
+ }
105
+ }
106
+ return ans;
107
+ }
108
+ };
109
+ ```
62
110
111
+ ### **Go**
112
+
113
+ ```go
114
+ func minIncrementForUnique(nums []int) int {
115
+ sort.Ints(nums)
116
+ ans := 0
117
+ for i := 1; i < len(nums); i++ {
118
+ if nums[i] <= nums[i-1] {
119
+ d := nums[i-1] - nums[i] + 1
120
+ nums[i] += d
121
+ ans += d
122
+ }
123
+ }
124
+ return ans
125
+ }
63
126
```
64
127
65
128
### ** ...**
Original file line number Diff line number Diff line change @@ -43,13 +43,74 @@ It can be shown with 5 or less moves that it is impossible for the array to have
43
43
### ** Python3**
44
44
45
45
``` python
46
-
46
+ class Solution :
47
+ def minIncrementForUnique (self , nums : List[int ]) -> int :
48
+ nums.sort()
49
+ ans = 0
50
+ for i in range (1 , len (nums)):
51
+ if nums[i] <= nums[i - 1 ]:
52
+ d = nums[i - 1 ] - nums[i] + 1
53
+ nums[i] += d
54
+ ans += d
55
+ return ans
47
56
```
48
57
49
58
### ** Java**
50
59
51
60
``` java
61
+ class Solution {
62
+ public int minIncrementForUnique (int [] nums ) {
63
+ Arrays . sort(nums);
64
+ int ans = 0 ;
65
+ for (int i = 1 ; i < nums. length; ++ i) {
66
+ if (nums[i] <= nums[i - 1 ]) {
67
+ int d = nums[i - 1 ] - nums[i] + 1 ;
68
+ nums[i] += d;
69
+ ans += d;
70
+ }
71
+ }
72
+ return ans;
73
+ }
74
+ }
75
+ ```
76
+
77
+ ### ** C++**
78
+
79
+ ``` cpp
80
+ class Solution {
81
+ public:
82
+ int minIncrementForUnique(vector<int >& nums) {
83
+ sort(nums.begin(), nums.end());
84
+ int ans = 0;
85
+ for (int i = 1; i < nums.size(); ++i)
86
+ {
87
+ if (nums[ i] <= nums[ i - 1] )
88
+ {
89
+ int d = nums[ i - 1] - nums[ i] + 1;
90
+ nums[ i] += d;
91
+ ans += d;
92
+ }
93
+ }
94
+ return ans;
95
+ }
96
+ };
97
+ ```
52
98
99
+ ### **Go**
100
+
101
+ ```go
102
+ func minIncrementForUnique(nums []int) int {
103
+ sort.Ints(nums)
104
+ ans := 0
105
+ for i := 1; i < len(nums); i++ {
106
+ if nums[i] <= nums[i-1] {
107
+ d := nums[i-1] - nums[i] + 1
108
+ nums[i] += d
109
+ ans += d
110
+ }
111
+ }
112
+ return ans
113
+ }
53
114
```
54
115
55
116
### ** ...**
Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ public:
3
+ int minIncrementForUnique (vector<int >& nums) {
4
+ sort (nums.begin (), nums.end ());
5
+ int ans = 0 ;
6
+ for (int i = 1 ; i < nums.size (); ++i)
7
+ {
8
+ if (nums[i] <= nums[i - 1 ])
9
+ {
10
+ int d = nums[i - 1 ] - nums[i] + 1 ;
11
+ nums[i] += d;
12
+ ans += d;
13
+ }
14
+ }
15
+ return ans;
16
+ }
17
+ };
Original file line number Diff line number Diff line change
1
+ func minIncrementForUnique (nums []int ) int {
2
+ sort .Ints (nums )
3
+ ans := 0
4
+ for i := 1 ; i < len (nums ); i ++ {
5
+ if nums [i ] <= nums [i - 1 ] {
6
+ d := nums [i - 1 ] - nums [i ] + 1
7
+ nums [i ] += d
8
+ ans += d
9
+ }
10
+ }
11
+ return ans
12
+ }
Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ public int minIncrementForUnique (int [] nums ) {
3
+ Arrays .sort (nums );
4
+ int ans = 0 ;
5
+ for (int i = 1 ; i < nums .length ; ++i ) {
6
+ if (nums [i ] <= nums [i - 1 ]) {
7
+ int d = nums [i - 1 ] - nums [i ] + 1 ;
8
+ nums [i ] += d ;
9
+ ans += d ;
10
+ }
11
+ }
12
+ return ans ;
13
+ }
14
+ }
Original file line number Diff line number Diff line change
1
+ class Solution :
2
+ def minIncrementForUnique (self , nums : List [int ]) -> int :
3
+ nums .sort ()
4
+ ans = 0
5
+ for i in range (1 , len (nums )):
6
+ if nums [i ] <= nums [i - 1 ]:
7
+ d = nums [i - 1 ] - nums [i ] + 1
8
+ nums [i ] += d
9
+ ans += d
10
+ return ans
You can’t perform that action at this time.
0 commit comments