10、输入某公司一段时间内每天销售数据,要求找出销售额连续增长最久的天数(即当天与前一天销售额之差大于0的连续天数)。例如:2001、2450、2560、2551、2057、2058、2024。其连续增长最久为3天。用java解决
时间: 2024-10-10 14:06:41 浏览: 27
在Java中解决这个问题,我们可以创建一个简单的算法,遍历输入的销售数据数组,并维护两个变量:一个记录当前连续增长的天数(currentLength),另一个记录最长的增长天数(maxLength)。遍历过程中,如果当前的销售额比前一天增加,我们将当前长度加一;否则,更新最长长度并从当前长度重置。
以下是Java代码的一个简单实现:
```java
import java.util.ArrayList;
import java.util.List;
public class SalesData {
public static int findLongestIncrease(List<Integer> salesData) {
if (salesData == null || salesData.isEmpty()) {
return 0;
}
int currentLength = 1; // 初始连续增长天数为1
int maxLength = 1; // 最长增长天数初始化为第一个元素
for (int i = 1; i < salesData.size(); i++) {
int diff = salesData.get(i) - salesData.get(i - 1);
if (diff > 0) {
currentLength++;
} else {
maxLength = Math.max(maxLength, currentLength);
currentLength = 1;
}
}
// 检查最后一个增长段是否比已知的最大长度更长
maxLength = Math.max(maxLength, currentLength);
return maxLength;
}
public static void main(String[] args) {
List<Integer> data = new ArrayList<>();
data.add(2001);
data.add(2450);
data.add(2560);
data.add(2551);
data.add(2057);
data.add(2058);
data.add(2024);
System.out.println("连续增长最久的天数为: " + findLongestIncrease(data));
}
}
```
在这个例子中,`findLongestIncrease`方法接收一个整数列表作为输入,返回连续增长最久的天数。`main`方法展示了如何使用这个函数处理给定的数据集。
阅读全文