LeetCode题解16. 最接近的三数之和

这个和三数和很像,前几天我刚在微信公众号发了这个题目,今天我们就来看下这道类似的题

## 题目描述

给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。

例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.

与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).

来源:力扣(LeetCode)

链接:https://leetcode-cn.com/problems/3sum-closest

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

题解:golang版本
~~~
func threeSumClosest(nums []int, target int) int {
\tif len(nums) < 3 {
\t\treturn -1
\t}
\tsort.Ints(nums)

\tclosest := nums[0] + nums[1] + nums[2] // result

\tfor i := 0; i < len(nums); i++ {
\t\tstart := i + 1
\t\tend := len(nums) - 1
\t\tfor start < end {
\t\t\tsum := nums[i] + nums[start] + nums[end]
\t\t\tif math.Abs(float64(target)-float64(closest)) > math.Abs(float64(target)-float64(sum)) {
\t\t\t\tclosest = sum
\t\t\t}
\t\t\tif closest == target {
\t\t\t\treturn closest
\t\t\t}
\t\t\tif sum > target {
\t\t\t\tend-- //greater then target
\t\t\t} else {
\t\t\t\tstart++ //less then target
\t\t\t}
\t\t}

\t}
\treturn closest

}
~~~

LeetCode题解计算机为什么是基于二进制的?

可以是三进制么?二进制有什么好处?题解:为什么叫电子计算机?算盘应该没有二进制

LeetCode题解黑白圆盘

一个圆盘被涂上了黑白二色,两种颜色各占一个半圆。圆盘以一个未知的速度、按一个未知的方向旋转。你有一种特殊的相机可以让你即时观察到圆上的一个点的颜色。你需要多少个相机才能确定圆盘旋转的方向?题解:可以用一个相机即可

LeetCode题解圆上任取三点构成锐角三角形的概率

来自字节跳动的一道几何题题解:1/4

LeetCode题解深度优先遍历和回溯的关系?

深度优先遍历的范围更大还是回溯的范围更大?为什么?题解:我的理解是:dfs是回溯思想的一种体现- 回溯:是在整个搜索空间中搜索出可行解,在搜索过程中不断剪枝回退,这是回溯的思想,这个搜索空间并没有限制于特定的数据结构。- dfs:dfs是指特定的数据结构中如图,树(特殊的图)中搜索答案,范围限制在了特定的数据结构。个人拙见。

LeetCode题解盲人买袜子。

他们都各自买了两对黑袜和两对白袜,八对袜子的布质、大小完全相同,而每对袜子都有一张商标纸连着。两位盲人不小心将八对袜子混在一起。他们每人怎样才能取回黑袜和白袜各两对呢?题解:暴力破解, 把袜子都拆开 一人一只 哈哈