递归处理电梯带人上楼

编程入门 行业动态 更新时间:2024-10-09 10:28:39

<a href=https://www.elefans.com/category/jswz/34/1771140.html style=递归处理电梯带人上楼"/>

递归处理电梯带人上楼

先输入两个整数N,K.表示有N个人要坐电梯上楼,电梯的容量为K,再输入N个整数(f1, f2, … , fn)表示每个人要到达的地方楼层,(1 <= N, K <= 2000, 1 <= fi <= 2000),电梯从A层到B层的时间为|A-B|,求输出最小的花费时间.

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;public class Main {public static void main(String[] args) throws Exception {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));String line = null;while ((line = br.readLine()) != null) {String[] strArr = line.split(",");int n = Integer.valueOf(strArr[0]);int k = Integer.valueOf(strArr[1]);String[] floors = br.readLine().split(",");List<Integer> list = new ArrayList<>();for (String floor : floors) {list.add(Integer.valueOf(floor));}list.sort((o1,o2) -> o2pareTo(o1));System.out.println(getCount(n, k, 0, list));}}private static int getCount(int n, int k, int index, List<Integer> list) {if (n <= k) {return (list.get(index) - 1) * 2;} else {return getCount(k, k, index, list) + getCount(n - k, k, index + k, list);}}
}

 

更多推荐

递归处理电梯带人上楼

本文发布于:2024-03-23 20:38:08,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1742571.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:递归   带人   电梯

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!