两指针(6)
来源:互联网 发布:淘宝直播的运营怎么做 编辑:程序博客网 时间:2024/05/18 17:24
原题:
/** * Created by gouthamvidyapradhan on 13/06/2017. * Accepted * 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. * <p> * For example, given array S = {-1 2 1 -4}, and target = 1. * <p> * The sum that is closest to the target is 2. (-1 + 2 + 1 = 2). */
答案:
public class ThreeSumClosest { public static void main(String[] args) { int[] a = {-1, 2, 1, -4}; System.out.println(new ThreeSumClosest().threeSumClosest(a, 1)); } public int threeSumClosest(int[] a, int target) { Arrays.sort(a); int min = Integer.MAX_VALUE, ans = -1; for (int i = 0, l = a.length; i < l - 2; i++) { if (i == 0 || !(a[i] == a[i - 1])) { int j = i + 1, k = l - 1; while (k > j) { if (j != i + 1 && (a[j] == a[j - 1])) { j++; continue; } int sum = a[i] + a[j] + a[k]; if (sum < target) { int diff = Math.abs(sum - target); if (diff < min) { min = diff; ans = sum; } j++; } else if (sum > target) { int diff = Math.abs(sum - target); if (diff < min) { min = diff; ans = sum; } k--; } else { return sum; } } } } return ans; }}
阅读全文
0 0
- 两指针(6)
- 两指针(1)
- 两指针(2)
- 两指针(3)
- 两指针(4)
- 两指针(5)
- 两指针(7)
- 比较两数大小(指针)
- 精致树叶鼠标指针(两款)
- 比较两数大小(指向函数的指针变量)
- 比较两数大小(指针函数版)
- 第十七周项目3-两种排序(指针做形参)
- 用指针比较两数的大小(2)
- 智能指针的两种实现(引用计数)
- 邻接表的两种实现(双向+非指针)
- 切分 字符串指针数组(如环境变量) 的两种方法, 数组下标 和 指针
- 指针、数组、字符串(二)两句话分清数组和指针
- 指针操作交换两数
- css js 实现图片动态切换
- 两指针(5)
- MongoDB:16-MongoDB-索引数组字段和索引子文档字段
- laoshidaima(用户管理商品)
- 排座位 要安排:3个A国人,3个B国人,3个C国人坐成一排。 要求不能使连续的3个人是同一个国籍。 求所有不同方案的总数?
- 两指针(6)
- 乐观锁和悲观锁的区别(最全面的分析)
- 两指针(7)
- 浅谈从源代码文件到二进制可执行文件的过程
- 寻找最大公因数(欧几里得算法)--C语言描述
- javase 面试常见错误2
- Astah Community安装教程
- [ Java学习 ] 正则表达式与模式匹配
- Oracle 之 SEQUENCE 简单应用