def eliminate_neighbours (items ) : Given the sequence of integer items that are guaranteed to be some permutation of positive integers from 1 to n where n is the length of the list, find the smallest number among those that still remain in the list, and remove from the list both that number and whichever of its current immediate neighbours is larger. The function should repeat this basic operation until the largest number in the original list gets eliminated. Return the number of removal operations that were needed to achieve this goal. For example, given the list [5, 2, 1, 4, 6, 3], the operation would remove element 1 and its current larger neighbour 4, resulting in the list [5, 2, 6, 3]. Applied again, that operation would remove 2 and its current larger neighbour 6, thus reaching the goal in two steps.

C++ Programming: From Problem Analysis to Program Design
8th Edition
ISBN:9781337102087
Author:D. S. Malik
Publisher:D. S. Malik
Chapter17: Linked Lists
Section: Chapter Questions
Problem 18PE
icon
Related questions
Question
100%
def eliminate_neighbours (items):
Given the sequence of integer items that are guaranteed to be some permutation of positive
integers from 1 to n where n is the length of the list, find the smallest number among those that still
remain in the list, and remove from the list both that number and whichever of its current
immediate neighbours is larger. The function should repeat this basic operation until the largest
number in the original list gets eliminated. Return the number of removal operations that were
needed to achieve this goal.
For example, given the list [5, 2, 1, 4, 6, 31, the operation would remove element 1 and its
current larger neighbour 4, resulting in the list [5, 2, 6, 3]. Applied again, that operation
would remove 2 and its current larger neighbour 6, thus reaching the goal in two steps.
items
Expected result
[1, 6, 4, 2, 5, 3]
1
[8, 3, 4, 1, 7, 2, 6, 5]
3
[8, 5, 3, 1, 7, 2, 6, 4]
4
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
5
range (1, 10001)
5000
[1000] + list(range (1, 1000))
1
Transcribed Image Text:def eliminate_neighbours (items): Given the sequence of integer items that are guaranteed to be some permutation of positive integers from 1 to n where n is the length of the list, find the smallest number among those that still remain in the list, and remove from the list both that number and whichever of its current immediate neighbours is larger. The function should repeat this basic operation until the largest number in the original list gets eliminated. Return the number of removal operations that were needed to achieve this goal. For example, given the list [5, 2, 1, 4, 6, 31, the operation would remove element 1 and its current larger neighbour 4, resulting in the list [5, 2, 6, 3]. Applied again, that operation would remove 2 and its current larger neighbour 6, thus reaching the goal in two steps. items Expected result [1, 6, 4, 2, 5, 3] 1 [8, 3, 4, 1, 7, 2, 6, 5] 3 [8, 5, 3, 1, 7, 2, 6, 4] 4 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 5 range (1, 10001) 5000 [1000] + list(range (1, 1000)) 1
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps with 5 images

Blurred answer
Knowledge Booster
Lists
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
C++ Programming: From Problem Analysis to Program…
C++ Programming: From Problem Analysis to Program…
Computer Science
ISBN:
9781337102087
Author:
D. S. Malik
Publisher:
Cengage Learning