python每日算法-2021-01-07


'''

题目描述
有一群孩子和一堆饼干,每个孩子有一个饥饿度,每个饼干都有一个大小。每个孩子只能吃 一个饼干,
且只有饼干的大小不小于孩子的饥饿度时,这个孩子才能吃饱。求解最多有多少孩子 可以吃饱。

'''


arr1=[1,2,5,9]
arr2=[1,3,21,4]

def weibao(arr1,arr2):
    i=0
    arr1.sort()
    arr2.sort()

    for j in arr1:
        while(len(arr2)>0):
            target= arr2.pop(0)
            if(target>=j):
                print '{}吃了{},饱了'.format(j,target)
                i=i+1
                break

    print '{}个人吃饱了'.format(i)



weibao(arr1,arr2)

'''
一群孩子站成一排,每一个孩子有自己的评分。现在需要给这些孩子发糖果,规则是如果一 个孩子的评分比自己身旁的一个孩子要高,
那么这个孩子就必须得到比身旁孩子更多的糖果;所 有孩子至少要有一个糖果。求解最少需要多少个糖果。

'''

def jifen(arr):
    tmp=[]
    for i in arr:
        tmp.append(1)

    for i in range(len(arr)-1):
        if(arr[i+1]>arr[i]):
            tmp[i+1]=tmp[i]+1

    for i in range(len(arr)-1,0,-1):
        if(arr[i-1]>arr[i]):
            tmp[i-1]=tmp[i]+1

    print tmp


test = [1,0,2]

jifen(test)


'''
题目描述
  给定多个区间,计算让这些区间互不重叠所需要移除区间的最少个数。起止相连不算重叠。
输入输出样例
输入是一个数组,数组由多个长度固定为 2 的数组组成,表示区间的开始和结尾。输出一个 整数,表示需要移除的区间数量。
'''


def eraseOverlapIntervals(arr):


        for i in range(len(arr)):
            for j in range(len(arr)-i-1):
                if(arr[j][1]>arr[j+1][1]):
                    arr[j],arr[j+1]=arr[j+1],arr[j]
        print arr

        tmp_index=0
        for j in range(len(arr)-1):
            while(j<len(arr)-1):
                if(arr[j+1][0] < arr[j][1]):
                    arr.pop(j+1)
                    tmp_index=tmp_index+1
                else : break

        #return self.pop_list(arr,tmp_index)
        return tmp_index

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值