无聊,刷题,来源:力扣(LeetCode)
给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。
例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.
与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).
直接上代码吧。
## 最接近的三数之和
# 输入target & nums
target = 1
nums = c(-1,2,1,-4)
# 自定义一个方法
find_sum <- function(nums,target){
# 设置一些参数
max_sum <- NULL
this_sum <- NULL
vabs <- 999999999999999
this_vabs <- NULL
#中间计算
for (i in (2:(length(nums)-1))) {
this_sum <- sum(nums[i-1],nums[i],nums[i+1])
this_vabs = abs(this_sum - target)
if (this_vabs < vabs) {
max_sum <- this_sum
vabs <- this_vabs
}else{
this_sum <- 0
}
}
#结果输出
print(max_sum)
}
结果:
好了,完事儿。