前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >经典算法

经典算法

原创
作者头像
大学里的混子
修改2019-03-11 10:26:58
7860
修改2019-03-11 10:26:58
举报
文章被收录于专栏:LeetCodeLeetCode

一、 给定数轴上点,寻找一个点到其他点的距离之和最小\

给你一个数轴上的许多个点,让你寻找一个点A,使得A到其他所有数轴上的点的距离之和最短

 毫无疑问,当数轴上的点的数量是偶数的时候,A取在数轴上所有点按照其坐标排列,排在最中间的两个点中间,

 当数轴上的点的数量是奇数的时候,A取这些所有点按照其坐标排列,排在最中间的点

当取好A之后求所有点到其距离之和即可

牛牛有4根木棍,长度分别为a,b,c,d。羊羊家提供改变木棍长度的服务,如果牛牛支付一个硬币就可以让一根木棍的长度加一或者减一。牛牛需要用这四根木棍拼凑一个正方形出来,牛牛最少需要支付多少硬币才能让这四根木棍拼凑出正方形。

输入描述:
输入包括一行,四个整数a,b,c,d(1 ≤ a,b,c,d ≤ 10^6), 以空格分割
输出描述:
输出一个整数,表示牛牛最少需要支付的硬币
输入例子1:
4 1 5 4
输出例子1:
4
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        String[] strings = str.split(" ");
        int [] arr = new int[strings.length];
        for(int i = 0; i < strings.length; i++){
            arr[i] = Integer.parseInt(strings[i]);
        }
        int avg = 0;
        int sum = 0;
        Arrays.sort(arr);
        avg = (arr[1]+arr[2])/2;
        sum = 0;
        for (int i = 0; i < 4; i++){
            sum += Math.abs(arr[i] - avg);
        }
        System.out.println(sum);       
    }
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、 给定数轴上点,寻找一个点到其他点的距离之和最小\
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档