Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Find number of positives in segment of list

I have a unsorted list. I’m asked to print k-times number of positive values in a segment.The boarders for segment start with 1 not 0. So, if the boarder [1,3] it means that we should find all positives among elements with indices [0,1,2]

For example,

2 -1 2 -2 3
4
1 1
1 3
2 4
1 5

The answer needs to be:

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

1
2
1
3

Currently, I’m creating a list with length as original where i equals 1 if original is positive and 0 if original is negative or zero. After that I sum for this segment:

lst = list(map(int, input().split()))
k = int(input())

neg = [1 if x > 0 else 0 for x in lst]
for i in range(k):
    l,r = map(int, input().split())
    l = l - 1
    print(sum(neg[l:r]))

Despite the fact that it’s the fastest code that I created so far, it is still too slow for this task. How would I optimize it (or make it faster)?

>Solution :

If I understand you correctly, there doesn’t seem to be a lot of room for optimization. The only thing that comes to mind really is that the lst and neg steps could be combined, which would save one loop:

positive = [int(x) > 0 for x in input().split()]
k = int(input())
for i in range(k):
    l, r = map(int, input().split())
    print(sum(positive[l-1:r]))

We can just have bools in the positive list, because bool is just a subclass of int, meaning True is treated like 1 and False like 0. (Also I would call the list positive instead of neg.)

The complexity is still O(n) though.

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading