leetcode 561. 数组拆分 I(排序)
生活随笔
收集整理的這篇文章主要介紹了
leetcode 561. 数组拆分 I(排序)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
給定長度為 2n 的整數數組 nums ,你的任務是將這些數分成 n 對, 例如 (a1, b1), (a2, b2), …, (an, bn) ,使得從 1 到 n 的 min(ai, bi) 總和最大。
返回該 最大總和 。
示例 1:
輸入:nums = [1,4,3,2]
輸出:4
解釋:所有可能的分法(忽略元素順序)為:
所以最大總和為 4
解題思路
每個數字對的兩個元素越接近,那么min(ai, bi) 總和最大
代碼
class Solution {public int arrayPairSum(int[] nums) {int res=0;Arrays.sort(nums);for (int i = 0; i < nums.length; i+=2) {res+= Math.min(nums[i],nums[i+1]);}return res;} }總結
以上是生活随笔為你收集整理的leetcode 561. 数组拆分 I(排序)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 老梦到死去的人好不好
- 下一篇: 梦到自己车里面东西丢了怎么办