【BugFree】Leetcode Array 标签
来源:互联网 发布:js动态创建div容器 编辑:程序博客网 时间:2024/06/05 13:22
Array类问题汇总
难度由上到下递增
- Array Partition I
Array Partition I(#561 Easy)
问题描述
Given an array of 2n integers, your task is to group these integers into n pairs of integer, say (a1, b1), (a2, b2), …, (an, bn) which makes sum of min(ai, bi) for all i from 1 to n as large as possible.
Example
Input: [1,4,3,2]
Output: 4
Explanation: n is 2, and the maximum sum of pairs is 4 = min(1, 2) + min(3, 4).
解法
class Solution { public int arrayPairSum(int[] nums) { Arrays.sort(nums); int result = 0; for (int i = 0; i < nums.length; i+=2){ result += nums[i]; } return result; } }
代码时间复杂度:O(n)
代码解释:
- Assume in each pair i, bi >= ai.
- Denote Sm = min(a1, b1) + min(a2, b2) + … + min(an, bn). The biggest Sm is the answer of this problem. Given 1, Sm = a1 + a2 + … + an.
- Denote Sa = a1 + b1 + a2 + b2 + … + an + bn. Sa is constant for a given input.
- Denote di = |ai - bi|. Given 1, di = bi - ai. Denote Sd = d1 + d2 + … + dn.
- So Sa = a1 + a1 + d1 + a2 + a2 + d2 + … + an + an + di = 2Sm + Sd => Sm = (Sa - Sd) / 2. To get the max Sm, given Sa is constant, we need to make Sd as small as possible.
- So this problem becomes finding pairs in an array that makes sum of di (distance between ai and bi) as small as possible. Apparently, sum of these distances of adjacent elements is the smallest. If that’s not intuitive enough, see attached picture. Case 1 has the smallest Sd.
阅读全文
0 0
- 【BugFree】Leetcode Array 标签
- bugfree
- bugfree
- BugFree
- [leetcode][array] Rotate Array
- LeetCode:Array
- Array-Leetcode
- Array-Leetcode
- Array-Leetcode
- Array-Leetcode
- Array-Leetcode
- Array-Leetcode
- Array-Leetcode
- Array-Leetcode
- Array-Leetcode
- Array-Leetcode
- Array-Leetcode
- LeetCode Array
- java程序员的大数据之路(6):定制的Writable类型
- char *a 与char a[] 的区别
- 分享一些前端开发中最常用的JS代码片段~ 干货~
- Windows下修改Mysql的root密码
- shell 比较两日期大小
- 【BugFree】Leetcode Array 标签
- Chrome扩展,下载网页上所有图片
- iPhone X Face ID判断
- 传输层-5、网络拥塞原因和TCP拥塞控制
- Ubuntu内部错误信息及处理
- vue中利用百度地图API显示两点间的距离
- excel sheet合并 宏初学
- MySQL学习笔记
- 支付宝授权登录