国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

LeetCode-3SumClosest

2019-11-14 14:53:13
字體:
來源:轉載
供稿:網友

題目:

Given an array S of n integers, find three integers in S such that the sum is closest to a given number, target. Return the sum of the three integers. You may assume that each input would have exactly one solution.

    For example, given array S = {-1 2 1 -4}, and target = 1.

    The sum that is closest to the target is 2. (-1 + 2 + 1 = 2).

思路:

和3sum一樣,排序之后,先確定第一個元素,然后對余下元素進行兩邊夾。

package sum;import java.util.Arrays;public class ThreeSumClosest {    public int threeSumClosest(int[] nums, int target) {        int len = nums.length;        Arrays.sort(nums);                int delta = nums[0] + nums[1] + nums[2] - target;        for (int i = 0; i < len - 2;) {            int l = i + 1;            int r = len - 1;            while (l < r) {                int tmp = nums[i] + nums[l] + nums[r] - target;                if (Math.abs(tmp) < Math.abs(delta))                    delta = tmp;                if (tmp == 0)                    return target;                if (tmp < 0)                    ++l;                else                    --r;            }                        do { ++i; } while (i < len && nums[i] == nums[i - 1]);        }                return target + delta;    }        public static void main(String[] args) {        // TODO Auto-generated method stub        int[] nums = { -1, 2, 1, -4 };        int target = 1;        ThreeSumClosest t = new ThreeSumClosest();        System.out.PRintln(t.threeSumClosest(nums, target));    }}

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 张家界市| 淄博市| 肥西县| 东山县| 东台市| 藁城市| 株洲市| 前郭尔| 本溪市| 凤翔县| 铁力市| 永吉县| 玛沁县| 正蓝旗| 邵东县| 清涧县| 日喀则市| 宜春市| 阜城县| 曲阜市| 留坝县| 嘉义市| 壶关县| 花莲市| 教育| 高密市| 兴城市| 曲沃县| 华阴市| 全州县| 长武县| 德化县| 牟定县| 庐江县| 屯昌县| 六安市| 遵化市| 会泽县| 旬阳县| 定安县| 永济市|