题解 | #牛舍安排问题#

牛舍安排问题

https://www.nowcoder.com/practice/b56eb97b8b5941d3a14cd4ce7238f502

# 有深度遍历的思想在里面,这题本来可以用简单的多层for循环解决,但是由于k是动态的,需要设计动态的for循环层数来解决,这个过程中需要记住将每一层for的i记录,用完后要pop掉,还有就是需要设计全局变量用来记录最小距离的值!!!!!
#coding:utf-8
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param houses int整型一维数组 
# @param k int整型 
# @return int整型
#
class Solution:
    # dis=1000
    def __init__(self):
        self.dis=1000
        # pass
    def minTotalDistance(self , houses , k ):
        arr=[]
        Solution.dy(self,k,houses,arr)
        return self.dis
    def dy(self,n,houses,arr):
        if n==0:
            diss=0
            for i in houses:
                res=[]
                for j in arr:
                    res.append(abs(i-j))
                diss+=min(res)
            if self.dis>diss:
                self.dis=diss
            print(self.dis,arr)
            if min(arr)==max(houses):
                return diss
            # print(arr)
        else:
            for i in range(max(houses)+1):
                arr.append(i)
                Solution.dy(self,n-1,houses,arr)
                arr.pop()
        # write code here

全部评论

相关推荐

醉蟀:你是我今年见过的最美牛客女孩
点赞 评论 收藏
分享
03-26 22:55
门头沟学院 Java
烤冷面在迎接:河南byd,应该就是郑大了。不过24届计算机是特殊情况,那年除了九✌和强2,以及两三个关系够硬的双非,其他的都是炮灰,感觉是十几年来互联网行业最烂的一年,如果想了解最新的就业情况,得找现在的大四。
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务