题解 | #最接近的三数之和#

最接近的三数之和

http://www.nowcoder.com/practice/f889497fd1134af5af9de60b4d13af23

import java.util.*;


public class Solution {
    
    public int ans = 100000;

    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * @param nums   int整型一维数组
     * @param target int整型
     * @return int整型
     */
    public int ClosestSum(int[] nums, int target) {
        // write code here
        if (3 == nums.length) {
            return nums[0] + nums[1] + nums[2];
        }
        process(nums, 0, 0, 0, target);
        return ans;
    }

    public void process(int[] nums, int index, int previousTotal, int numbers, int target) {
        if (numbers == 3) {
            ans = Math.abs(previousTotal - target) < Math.abs(ans - target) ? previousTotal : ans;
            return;
        }
        if (index >= nums.length) {
            return;
        }
        process(nums, index + 1, previousTotal, numbers, target);
        process(nums, index + 1, previousTotal + nums[index], numbers + 1, target);
    }
}
全部评论

相关推荐

本神尊:看来是没招到小红薯上的人
点赞 评论 收藏
分享
06-26 17:24
已编辑
宁波大学 Java
一口洪烧肉:哈哈哈哈哈哈哈哈哈哈哈硬要啊
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务