@@ -159,7 +159,7 @@ public:
159159 }
160160 mi = min(mi, x);
161161 }
162- sort(nums.begin(), nums.end() );
162+ ranges:: sort(nums);
163163 int m = nums.size();
164164 long long ans = 0;
165165 for (int i = 0; i < m / 2; ++i) {
@@ -206,6 +206,80 @@ func abs(x int) int {
206206}
207207```
208208
209+ #### TypeScript
210+
211+ ``` ts
212+ function minCost(basket1 : number [], basket2 : number []): number {
213+ const n = basket1 .length ;
214+ const cnt: Map <number , number > = new Map ();
215+ for (let i = 0 ; i < n ; i ++ ) {
216+ cnt .set (basket1 [i ], (cnt .get (basket1 [i ]) || 0 ) + 1 );
217+ cnt .set (basket2 [i ], (cnt .get (basket2 [i ]) || 0 ) - 1 );
218+ }
219+ let mi = Number .MAX_SAFE_INTEGER;
220+ const nums: number [] = [];
221+ for (const [x, v] of cnt .entries ()) {
222+ if (v % 2 !== 0 ) {
223+ return - 1 ;
224+ }
225+ for (let i = 0 ; i < Math .abs (v ) / 2 ; i ++ ) {
226+ nums .push (x );
227+ }
228+ mi = Math .min (mi , x );
229+ }
230+
231+ nums .sort ((a , b ) => a - b );
232+ const m = nums .length ;
233+ let ans = 0 ;
234+ for (let i = 0 ; i < m / 2 ; i ++ ) {
235+ ans += Math .min (nums [i ], mi * 2 );
236+ }
237+ return ans ;
238+ }
239+ ```
240+
241+ #### Rust
242+
243+ ``` rust
244+ use std :: collections :: HashMap ;
245+
246+ impl Solution {
247+ pub fn min_cost (basket1 : Vec <i32 >, basket2 : Vec <i32 >) -> i64 {
248+ let n = basket1 . len ();
249+ let mut cnt : HashMap <i32 , i32 > = HashMap :: new ();
250+
251+ for i in 0 .. n {
252+ * cnt . entry (basket1 [i ]). or_insert (0 ) += 1 ;
253+ * cnt . entry (basket2 [i ]). or_insert (0 ) -= 1 ;
254+ }
255+
256+ let mut mi = i32 :: MAX ;
257+ let mut nums = Vec :: new ();
258+
259+ for (x , v ) in cnt {
260+ if v % 2 != 0 {
261+ return - 1 ;
262+ }
263+ for _ in 0 .. (v . abs () / 2 ) {
264+ nums . push (x );
265+ }
266+ mi = mi . min (x );
267+ }
268+
269+ nums . sort ();
270+
271+ let m = nums . len ();
272+ let mut ans = 0 ;
273+
274+ for i in 0 .. (m / 2 ) {
275+ ans += nums [i ]. min (mi * 2 ) as i64 ;
276+ }
277+
278+ ans
279+ }
280+ }
281+ ```
282+
209283<!-- tabs: end -->
210284
211285<!-- solution: end -->
0 commit comments