算法期末考试题目+代码

【问题描述】

求解乘船问题。有 n 个人,第 i 个人体重为 wi(0≤i<n)。每艘船的最大载重量均为 C,且最多只能乘两个人。用最少的船装载所有人。

【编程实现】JAVA版:

import java.util.Arrays;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in=new Scanner(System.in);
		int n=in.nextInt();
		int c=in.nextInt();
		int a[]=new int[n];
		for(int i=0;i<n;i++) {
			a[i]=in.nextInt();
		}
		Arrays.sort(a);
		int ans=0,i=0,j=n-1;
		while(i<j)
		{	if(a[i]+a[j]<=c) {
				ans++;
				i++;
				j--;
			}
			else {
				ans++;
				j--;
			}
		}
		if(i==j)System.out.println(ans+1);
		else System.out.println(ans);
		}

}

【执行结果】

 

全部评论

相关推荐

09-28 22:01
已编辑
广西科技大学 IT技术支持
合适才能收到offe...:找桌面运维?
点赞 评论 收藏
分享
Aurora23:属于挂一半,暂时进池子了,隔一段时间没有其他组捞的话就彻底结束了
点赞 评论 收藏
分享
评论
2
2
分享

创作者周榜

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