其他分享
首页 > 其他分享> > 货仓选址

货仓选址

作者:互联网

题目描述

在一条数轴上有 N 家商店,它们的坐标分别为 A1~AN。

现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。

为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小。

输入格式

第一行输入整数N。

第二行N个整数A1~AN。

输出格式

输出一个整数,表示距离之和的最小值。

数据范围

1≤N≤100000
0≤Ai≤40000

输入样例:

4
6 2 9 1

    1
    2

输入样例:

12

在数比较小 的时候还可以正常运行,但当数变的打的时候 不能运行。而且很多东西都十分复杂,写的不够精简。在看了别人的代码后,学习到了很多新的知识点。

知识点1:Arrays.sort(a)可以将数组排序,除此之外,还有冒泡排序,选择排序等等。而我复杂的将一个数组排序到另外一个数组,可能期间还会出现问题。

知识点2

<<,>>,>>>为java中的移位运算符。

    1. <<表示左移运算符
      例如8<<2,表示将8向左移2位,结果为32。低位补0。
      二进制演算:
      8的二进制:1 0 0 0
      向左移动两位结果为1 0 0 0 0 0,换算成十进制即为32,也可以简单的理解为,左移就是将数变大,相当于8*2^2=32。
      左移运算符的运算规律:将左边的数按照右边的数往左移动几位。
    2. ”>>”表示右移运算符
      例如 8>>2,表示将8向右移动2位,结果为2。高位补0。
      二进制演算:
      8的二进制:1 0 0 0
      向右移动两位:0 0 1 0即为2,也可以简单的理解为将数向右移位就是将数变小,相当于8除以2^2=2。
      右移运算符运算规律:将左边的数按照右边的数右移几位。

知识点3:for(元素类型t 元素变量x : 遍历对象obj);

知识点4:math.abs()计算括号中的绝对值。

import java.util.Scanner;
public class Main{
	
	public static void main(String[] args){
		Scanner a=new Scanner(System.in);
		int N=a.nextInt();
		int[] num=new int[N];
		int[] num2=new int[N];
		for(int i=0;i<N;i++) {
			num[i]=a.nextInt();
		}
		int m=-1;int min =40000;
		for(int w=0;w<N;w++) {
			
				for (int s=0;s<N;s++) {
				if(m<num[s]&&num[s]<=min) {
					min=num[s];	
				}
			}
			num2[w]=min;
			m=min;
			min=40000;
		}
		int sum=0;
		for(int v=1;v<=N/2;v++) {
			int sum1=num2[N-v]-num2[v-1];
			sum=sum+sum1;
			
		}
		System.out.println(sum);
	}
}	

 

import java.util.Arrays;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner cin = new Scanner(System.in);
        int n = cin.nextInt();
        int[] a = new int[n];
        for (int i = 0; i < n; ++ i) {
            a[i] = cin.nextInt();
        }
        Arrays.sort(a);
        int ans = 0;
        int pos = a[n >> 1];
        for (int x : a) {
            ans += Math.abs(pos - x);
        }
        System.out.println(ans);
    }
}
————————————————
版权声明:本文为CSDN博主「小菜菜不会写代码」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xiaoxiao66668/article/details/112591714

 

标签:知识点,货仓,Scanner,int,运算符,new,选址
来源: https://www.cnblogs.com/6219chen/p/14828145.html