博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode 16 3Sum Closest
阅读量:6800 次
发布时间:2019-06-26

本文共 863 字,大约阅读时间需要 2 分钟。

题目详情

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.

给定一个整数数组,我们需要找出数组中三个元素的加和,使这个加和最接近于输入的target数值。返回这个最接近的加和。题目假设一道题只有一个答案。

For example,输入数组S = {-1 2 1 -4},目标和target = 1.

最接近target的加和是 2. (-1 + 2 + 1 = 2).

想法

  • 这道题和第15题很像,所以这道题也可以选择预排序算法。
  • 我们先对数组进行预排序。
  • 然后通过减治思想,我们先锁定第一个元素,之后找两个元素的加和尽可能接近target和第一个元素值的差值。
  • 找后两个元素的时候,使用左右指针从两端查找。

解法

public int threeSumClosest(int[] nums, int target) {        int min = Integer.MAX_VALUE;        Arrays.sort(nums);                for(int i=0;i
Math.abs(diff)){ min = diff; } if(diff > 0)high--; else low++; } } return target+min; }

转载地址:http://niywl.baihongyu.com/

你可能感兴趣的文章
JSON 数据格式
查看>>
字符编码,文件处理
查看>>
MapperScannerConfigurer
查看>>
UNIX环境高级编程——守护进程列表
查看>>
UIButton
查看>>
UITabBarController
查看>>
融合式架构Nutanix深入分析一
查看>>
独家爆料:创宇云与小鸟云的故事
查看>>
FireEye:K3chang行动***欧洲外交部门
查看>>
你会用Python写洗脑神曲吗?
查看>>
Win32 文件(3)
查看>>
一款基于css3鼠标经过圆形旋转特效
查看>>
【温故而知新-Javascript】使用 Window 对象
查看>>
成功站长应具备的良好心态
查看>>
Android App测试要点
查看>>
Laravel 中使用 puppeteer 采集异步加载的网页内容
查看>>
Spring中使用ActiveMQ
查看>>
【数据结构】Java语言描述-循环链表和双向链表操作
查看>>
什么是跨域以及几种简单解决方案
查看>>
微信小程序生成二维码工具
查看>>