- Picking Numbers

 


Given an array of integers, find the longest subarray where the absolute difference between any two elements is less than or equal to .

Example

There are two subarrays meeting the criterion:  and . The maximum length subarray has  elements.

Function Description

Complete the pickingNumbers function in the editor below.

pickingNumbers has the following parameter(s):

  • int a[n]: an array of integers

Returns

  • int: the length of the longest subarray that meets the criterion

Input Format

The first line contains a single integer , the size of the array .
The second line contains  space-separated integers, each an .

Constraints

  • The answer will be .

Sample Input 0

6
4 6 5 3 3 1

Sample Output 0

3

Explanation 0

We choose the following multiset of integers from the array: . Each pair in the multiset has an absolute difference  (i.e.,  and ), so we print the number of chosen integers, , as our answer.

Sample Input 1

6
1 2 2 3 1 2

Sample Output 1

5

Explanation 1

We choose the following multiset of integers from the array: . Each pair in the multiset has an absolute difference  (i.e., , and ), so we print the number of chosen integers, , as our answer.

Program:

#!/bin/python3

import math
import os
import random
import re
import sys

#
# Complete the 'pickingNumbers' function below.
#
# The function is expected to return an INTEGER.
# The function accepts INTEGER_ARRAY a as parameter.
#

def pickingNumbers(a):
    list2=[]
    for i in range(0,len(a)-1):
        list1=[]
        list1.append(a[i])
        for j in range(0,len(a)):
            f=0
            for item in list1:
                if (abs(a[j]-item)<=1):
                    continue
                else:
                    f=1
                    break
            if f==0:
                list1.append(a[j])
        if len(list2)<len(list1):
            list2=list1
    return(len(list2)-1)  

if __name__ == '__main__':
    fptr = open(os.environ['OUTPUT_PATH'], 'w')

    n = int(input().strip())

    a = list(map(intinput().rstrip().split()))

    result = pickingNumbers(a)

    fptr.write(str(result) + '\n')

    fptr.close()

Output:

Compiler Message
Success
Input (stdin)
  • 6
  • 4 6 5 3 3 1
Expected Output
  • 3

Post a Comment

Previous Post Next Post