55
55
<p ><strong >Constraints:</strong ></p >
56
56
57
57
<ul >
58
-
59
58
<li><code>costs.length == n</code></li>
60
-
61
59
<li><code>1 <= n <= 10<sup>5</sup></code></li>
62
-
63
60
<li><code>1 <= costs[i] <= 10<sup>5</sup></code></li>
64
-
65
61
<li><code>1 <= coins <= 10<sup>8</sup></code></li>
66
-
67
62
</ul >
68
63
69
64
## Solutions
@@ -78,14 +73,11 @@ Pay attention to the data range. The question can easily mislead us to use the 0
78
73
class Solution :
79
74
def maxIceCream (self , costs : List[int ], coins : int ) -> int :
80
75
costs.sort()
81
- ans = 0
82
- for c in costs:
76
+ for i, c in enumerate (costs):
83
77
if coins < c:
84
- break
85
- else :
86
- ans += 1
87
- coins -= c
88
- return ans
78
+ return i
79
+ coins -= c
80
+ return len (costs)
89
81
```
90
82
91
83
### ** Java**
@@ -94,12 +86,14 @@ class Solution:
94
86
class Solution {
95
87
public int maxIceCream (int [] costs , int coins ) {
96
88
Arrays . sort(costs);
97
- int ans = 0 , n = costs. length;
98
- for (int i = 0 ; i < n && coins >= costs[i]; i++ ) {
99
- ans++ ;
89
+ int n = costs. length;
90
+ for (int i = 0 ; i < n; ++ i) {
91
+ if (coins < costs[i]) {
92
+ return i;
93
+ }
100
94
coins -= costs[i];
101
95
}
102
- return ans ;
96
+ return n ;
103
97
}
104
98
}
105
99
```
@@ -111,12 +105,12 @@ class Solution {
111
105
public:
112
106
int maxIceCream(vector<int >& costs, int coins) {
113
107
sort(costs.begin(), costs.end());
114
- int ans = 0 ;
115
- for (int i = 0; i < costs.size() && coins >= costs [ i ] ; ++i) {
116
- ++ans ;
108
+ int n = costs.size() ;
109
+ for (int i = 0; i < n ; ++i) {
110
+ if (coins < costs [ i ] ) return i ;
117
111
coins -= costs[ i] ;
118
112
}
119
- return ans ;
113
+ return n ;
120
114
}
121
115
};
122
116
```
@@ -126,16 +120,37 @@ public:
126
120
```go
127
121
func maxIceCream(costs []int, coins int) int {
128
122
sort.Ints(costs)
129
- n := len( costs)
130
- ans := 0
131
- for i := 0; i < n && coins >= costs[i]; i++ {
132
- ans++
133
- coins -= costs[i]
123
+ for i, c := range costs {
124
+ if coins < c {
125
+ return i
126
+ }
127
+ coins -= c
134
128
}
135
- return ans
129
+ return len(costs)
136
130
}
137
131
```
138
132
133
+ ### ** JavaScript**
134
+
135
+ ``` js
136
+ /**
137
+ * @param {number[]} costs
138
+ * @param {number} coins
139
+ * @return {number}
140
+ */
141
+ var maxIceCream = function (costs , coins ) {
142
+ costs .sort ((a , b ) => a - b);
143
+ const n = costs .length ;
144
+ for (let i = 0 ; i < n; ++ i) {
145
+ if (coins < costs[i]) {
146
+ return i;
147
+ }
148
+ coins -= costs[i];
149
+ }
150
+ return n;
151
+ };
152
+ ```
153
+
139
154
### ** ...**
140
155
141
156
```
0 commit comments