需求:活动每日签到,求最大连续签到天数
数据格式如下:
```java
//初始化数据,以11月为例
List<String> listDate = new ArrayList();
for (int i = 1; i <= 30; i++) {
listDate.add(11 + "-" + i);
}
//签到天数
List<String> listSign = new ArrayList<>();
listSign.add("11-1");
listSign.add("11-2");
listSign.add("11-3");
listSign.add("11-5");
listSign.add("11-6");
listSign.add("11-7");
listSign.add("11-8");
listSign.add("11-9");
listSign.add("11-14");
listSign.add("11-15");
listSign.add("11-18");
listSign.add("11-19");
listSign.add("11-20");
listSign.add("11-21");
listSign.add("11-22");
listSign.add("11-24");
listSign.add("11-27");
//判断有连续签到,记录天数
//如果没有连续签到,则置为0
int max = 0;
int continuity = 0;
for (int i = 0; i < listDate.size(); i++) {
for (int j = 0; j < listSign.size(); j++) {
if(listDate.get(i).equals(listSign.get(j))){
continuity ++;
//判断第n次最大数和第n-1次最大数比较
if(max > continuity){
break;
}
max = continuity;
}else {
continue;
}
}
if(!listSign.contains(i == listDate.size()-1 ? listDate.get(listDate.size()-1) : listDate.get(i + 1))){
continuity = 0;
}
}
System.out.println("max:" + max);