【小算法】Java中对不定长度的List,最大值为X,大于X的进行平均分组,如果不能平均分组的,每组相差不能超过1
题目:请使用Java完成对不定长度的List,进行分组,假设list最大20,分组后,每组不能大于20.请平均分组,如果不能平均分的,每组长度相差,不能超过1.思路:①:list的长度是size,判断长度如果小于等于20的,直接返回;②:如果长度大于20的情况,要计算需要分多少组。分组的小算法:size/20+(size%20>0?1:0)。变量名字:num_groups③:计算每组的基本大
题目:
请使用Java完成对不定长度的List,进行分组,假设list最大20,分组后,每组不能大于20.请平均分组,如果不能平均分的,每组长度相差,不能超过1.
例如:
有list的长度是x,如果长度不大于20,就不分割,如果大于20进行平均分配,但是每组长度相差不能超过1。比如长度21分割两组,一组长度11一组长度10;再比如长度55,分三组,每组长度分别是19,18,18
思路:
①:list的长度是size,判断长度如果小于等于20的,直接返回;
②:如果长度大于20的情况,要计算需要分多少组。分组的小算法:size/20 + (size % 20 >0?1:0)。变量名字:num_groups
③:计算每组的基本大小:size/ 分组的数量 = 每组的大小。变量名:group_size
④:计算剩余的元素数量:size % 分组数量 = 剩余元素的大小.变量名字:remaining
⑤:按照基本大小取出元素:使用到list进行分页处理
⑥:如果还有剩余的元素,则追加到当前组中
完整的代码:
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class SplitListExample {
public static void main(String[] args) {
// Create a list with 25 elements
List<Integer> lst = new ArrayList<>();
for (int i = 0; i < 25; i++) {
原创不易,完成人机校验,阅读全文