Subarray Sum Closest
来源:互联网 发布:淘宝商标上传 编辑:程序博客网 时间:2024/05/20 17:24
Step 1. Calculate the prefix sum for each position in the array.
Step 2. Sort the prefix sum array.
Step 3. Compare every prefix sum and distance between two adjacent prefix sum, choose the minimum as diff, and save the start and end indices.
public class Solution { private class PrefixSum implements Comparable<PrefixSum> { private int index; private int sum; public PrefixSum(int index, int sum) { this.index = index; this.sum = sum; } public int compareTo(PrefixSum comparePrefixSum) { return this.sum - comparePrefixSum.sum; } } public int[] subarraySumClosest(int[] nums) { int[] res = new int[2]; PrefixSum[] prefixSum = new PrefixSum[nums.length]; int sum = 0; for (int i=0; i<nums.length; i++) { sum += nums[i]; prefixSum[i] = new PrefixSum(i, sum); } Arrays.sort(prefixSum); int diff = Integer.MAX_VALUE; for (int i=0; i<prefixSum.length; i++) { if (Math.abs(prefixSum[i].sum) < diff) { diff = Math.abs(prefixSum[i].sum); res[0] = 0; res[1] = prefixSum[i].index; } if (i>0 && Math.abs(prefixSum[i].sum-prefixSum[i-1].sum)<diff) { diff = Math.abs(prefixSum[i].sum-prefixSum[i-1].sum); if (prefixSum[i-1].index < prefixSum[i].index) { res[0] = prefixSum[i-1].index+1; res[1] = prefixSum[i].index; } else { res[1] = prefixSum[i-1].index; res[0] = prefixSum[i].index+1; } } } return res; }}
0 0
- [刷题]Subarray Sum Closest
- lintcode:Subarray Sum Closest
- lintcode: Subarray Sum Closest
- Subarray Sum Closest
- #139 Subarray Sum Closest
- Subarray Sum Closest
- Subarray Sum Closest
- [LintCode]Subarray Sum Closest
- Subarray Sum Closest
- 139. Subarray Sum Closest
- Lintcode139 Subarray Sum Closest solution 题解
- [算法题] 最接近零的子数组和 Subarray Sum Closest
- 139.Subarray Sum Closest-最接近零的子数组和(中等题)
- Subarray Sum
- Subarray Sum
- subarray sum
- Subarray Sum
- Subarray Sum
- 浅谈出版物的纸、电一体化新方向
- link numpy with openblas on Ubuntu 16.04
- Linux最简单的文件系统aufs剖析详解
- The packaging for this project did not assign a file to the build artifact
- Hill密码的加密与解密(C语言)
- Subarray Sum Closest
- tar.xz压缩与解压
- React 组件图片库的延迟加载
- 在Mac Os安装并建立ITK
- Leetcode 138. Copy List with Random Pointer
- Support Vector Machines(SVM)
- CENTOS:安装PHP的mcrypt和GD Extension
- 电子图书是纸质实体版与电子版组合的配套发行物
- 树莓派 Learning 003 — GPIO 002 输入模式 — 按键控制LED