检查列表a中最接近的最大元素a列表中的每个元素b对此代码的任何优化建议以获取巨大的列表

尼克·乔汉(Nikhil Chauhan)

功能:
“列表b”的每个元素检查“列表a”中最接近的最大元素

如果找到元素,则从原始列表中删除该元素

所以下一个元素可以比较

列表a = [2,3,4],列表b = [0,0,7] => 2,3,-1

如果未找到任何元素,则返回:-1

最后输出-1

有关优化此代码以获得大量列表的任何建议

import sys
def next(arr, target): #method returns index of nex greater element or -1
    start = 0
    end = len(arr) - 1
    ans = -1
    while (start <= end):
        mid = (start + end) // 2
        if (arr[mid] <= target):
            start = mid + 1
        else:
            ans = mid
            end = mid - 1
    return ans
def main():

        q=list(map(int,sys.stdin.readline().split())) #list1
        r=list(map(int,sys.stdin.readline().split())) #list2
        q.sort()
        r.sort()
        var,count=0,0
        for tst in r:
                var=next(q,tst)
                q.pop(var)
                if var == -1:
                    count+=1

        print(count)
main()
戈兰·马齐德·萨吉布

首先对两个列表进行排序。然后比较两个值。如果a [i]不大于b [i],则转到a的下一个元素。

a = [2,3,4]
b = [0,0,7]

a.sort()
b.sort()
c = [];
x = 0;
for i in range(len(b)):
    while x < len(a):
        if a[x] > b[i]:
            c.append(a[x])
            break;
        x = x + 1;
    if x >= len(a):
        c.append(-1)
    else:
        x = x + 1;
for i in c:
    print(i)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档