笔试题目

这篇博客包含两道编程笔试题目,涉及算法和问题解决技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Probblem 1 

'''
two cars to transform the rabbish,but some rabbish cant be placed together
and 2 cars each has a same rabbish amount, you should give us the most rabbish we can transform
each rabbish at most has two constrain
input:
5 2  (5 means the amount of rabbish, 2  means the amount of constrain)
1 2
2 4(this is the constrain ,means the rabbish 2 and 4 cant be placed into the same car
   

:return
most rabbish 2 cars can transform
'''
while True:
    try:
        x=list(map(int,(input().split())))
        rabAmount=x[0]
        limitAmount=x[1]
        limit=[]
        for i in range(limitAmount):
            limit_new = list(map(int,(input().split())))
            limit.append(limit_new)

        carrynum=0
        print(limit)
        car1= set()
        car2= set()

        #use dic
        limitdic={}
        limitdic['a']=5


        print(limitdic)
        for i in range(0, limitAmount):
            if limitdic[limit[i][1]]

            buffer =  limitdic[limit[i][1]]
            print(buffer)

            buffer.append(limit[i][0])
            limitdic[limit[i][1]] = buffer

        print(limitdic)
        print(limitdic[2])
        car1.add(limit[1][0])
        car2.add(limit[1][1])
        #for i in range(1,limitAmount):
           # if limit[i][0] in

        a=set()



    except:
        break

Problem 2

'''
input:
5 3   (5 means the length of list, 3 means the least lengh of children list)
-2 1 -3 5 -10   (this is the provided list)

:return
minimum sum value of children sequence
here is -9    
'''
while True:
    try:
        x=list(map(int,(input().split())))
        Amount=x[0]
        limitRange=x[1]
        data=[1,-2,3,4,-5,4,5]
        #data = list(map(int,(input().split())))

        accumulate=[data[1]]
        for i in range(1,Amount):
            accumulate.append(data[i]+accumulate[i-1])
        peakmark=[]
        for i in range(1,Amount-1):
            if (accumulate[i]< accumulate[i+1] & accumulate[i]<accumulate[i-1]) or (accumulate[i]>accumulate[i+1] & accumulate[i]>accumulate[i-1]):
                peakmark.append(accumulate[i])
        if peakmark==[]:
            # no peakvlue exist

        maxPeak =0
        minPeak = 0
        minPos=0
        maxPos =0
        for i in range(len(peakmark)):
            if peakmark[i]<minPeak:
                minPeak = peakmark[i]
                minPos = peakmark[i]
            if peakmark[i]> maxPeak:
                maxPeak = peakmark[i]
                maxPos = peakmark[i]
            if maxPos<minPos:
                maxPeak = peakmark[i]
                maxPos = peakmark[i]
        print(minPeak-maxPeak)
    except:
        break

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值