ali在线评测

最后一分钟把题粘了下来,去网上一搜竟然早就有人做过了,自己火急火燎的,做的不太好,好多变量声明的位置不对影响性能,但是心里只想着做出答案,没考虑变量位置的问题,通过了80%的样例,心里很是不舒服的感觉。一是自己没通过,二是想到会不会有人。。。通过这样的办法直接过了这题。

 

如图,某物流派送员p,需要给a、b、c、d4个快递点派送包裹,请问派送员需要选择什么的路线,才能完成最短路程的派送。假设如图派送员的起点坐标(0,0),派送路线只能沿着图中的方格边行驶,每个小格都是正方形,且边长为1,如p到d的距离就是4。随机输入n个派送点坐标,求输出最短派送路线值(从起点开始完成n个点派送并回到起始点的距离)

éå¿«éçæç­è·¯çº¿

把自己的代码晒出来吧,交完卷也没想到哪种情况下我的代码是不对的。我自己在想想,也希望有人发现问题能给我留言。

ali基本凉了

import java.util.Map;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeMap;
import java.util.Map.Entry;
/*
 * 
 * 如图,某物流派送员p,需要给a、b、c、d4个快递点派送包裹,请问派送员需要选择什么的路线,
 * 才能完成最短路程的派送。假设如图派送员的起点坐标(0,0),派送路线只能沿着图中的方格边行驶,
 * 每个小格都是正方形,且边长为1,如p到d的距离就是4。随机输入n个派送点坐标,求输出最短派送路线值(从起点开始完成n个点派送并回到起始点的距离)
 */
public class Main {
	
	public static void main(String[] args) {
		
		Scanner scan=new Scanner(System.in);
		int n=scan.nextInt();
		int left=0;
		int right=0;
		int sum=0;
		Map<Integer,Integer> map=new TreeMap<Integer,Integer>(); 
		for(int i=0;i<n;i++){
			String str=scan.next();
			String []s=str.split(",");	
			left=Integer.parseInt(s[0]);
			right=Integer.parseInt(s[1]);
			map.put(left, right);
		}
		int preKey=0;
		int preValue=0;
		int key =0;
		int value =0;
		Set<Entry<Integer,Integer>> set = map.entrySet();
		for(Entry<Integer,Integer> entry : set){
			key = entry.getKey();
			value = entry.getValue();
			int result=Math.abs(key-preKey)+Math.abs(value-preValue);
			sum+=result;
			preKey=key;
			preValue=value;
		}
		sum=sum+key+value;
		System.out.println(sum);
		
	}

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值