/**
*
* @Title: getLongDay
* @Description: 获取日历连续签到的天数
* @param @param list 签到的日期集合
* @param @return 设定文件
* @return int 返回类型
* @throws
*/
public static int getLongDay(List<Integer> list) {
List<Integer> list2 = new ArrayList<Integer>();
List<Integer> list3 = new ArrayList<Integer>();
//先获取连续中断的位置,放在list2中
for (int i = 0; i < list.size(); i++ ) {
if (i == list.size() - 1) {
break;
} else if (list.get(i + 1) - list.get(i) != 1) {
list2.add(i);
}
}
//通过判断获取连续的个数,在list3中取最大值即可。
if (0 == list2.size()) {
return list.size();
} else {
for (int i = 0; i < list2.size(); i++ ) {
if (1 == list2.size()) {
list3.add(list2.get(0) + 1);
list3.add(list.size() - 1 - list2.get(i));
} else {
if (i == 0) {
list3.add(list2.get(0) + 1);
list3.add(list2.get(i + 1) - list2.get(i));
} else if (i == list2.size() - 1) {
list3.add(list.size() - 1 - list2.get(i));
} else {
list3.add(list2.get(i + 1) - list2.get(i));
}
}
}
return Collections.max(list3);
}
}
获取list中连续的数最长个数(日历连续签到天数)
最新推荐文章于 2023-11-12 19:30:49 发布