Problem Statement
An arithmetic series consists of a sequence of terms such that each term minus its immediate predecessor gives the same result. For example, the sequence 3,7,11,15 is the terms of the arithmetic series 3+7+11+15; each term minus its predecessor equals 4. (Of course there is no requirement on the first term since it has no predecessor.)
Given a collection of integers, we want to find the longest arithmetic
series that can be formed by choosing a sub-collection (possibly the entire collection).
Create a class
ASeries that contains a method longest that is given a
Definition
- Class:
- ASeries
- Method:
- longest
- Parameters:
- int[]
- Returns:
- int
- Method signature:
- int longest(int[] values)
- (be sure your method is public)
Constraints
- values will contain between 2 and 50 elements inclusive.
- Each element of values will be between -1,000,000 and 1,000,000 inclusive.
Examples
{3,8,4,5,6,2,2}
Returns: 5
No arithmetic series using these values is longer than 2,3,4,5,6.
{-1,-5,1,3}
Returns: 3
-1, 1, 3 is an arithmetic series (so is 3,-1,-5).
{-10,-20,-10,-10}
Returns: 3
-10,-10,-10 is an arithmetic series.
{2,5,9,24,34,36,39}
Returns: 3
{1,2,3,4,5,6,7,8,9,11,13,17,15,21,19,23,25}
Returns: 13
{1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5}
Returns: 9
{1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,1,1,1,1,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5}
Returns: 10
{50,49,48,47,46,44,43,42,41,40,38,37,36,35,34,32,31,30,29,28}
Returns: 12
{500000,490000,480000,470000,460000,440000,430000,420000,410000,400000,380000,370000,360000,350000,340000,320000,310000,300000,290000,280000}
Returns: 12
{7,1,2,3,20,13,19}
Returns: 4
{1000000,712347}
Returns: 2
{1000000,712347,1}
Returns: 2
{-1000000,3,4,5,-200000,1,200000,12,-600000}
Returns: 4
{-8,-24,-32,-40,0}
Returns: 3
{-8,-24,-32,-40,0,1,2,-16}
Returns: 6
{-8,-24,-32,-40,0,1,2,-16,0,0,0,0,1000,-0,0}
Returns: 7