讨论/题目交流/🏆 第 175 场力扣周赛/
🏆 第 175 场力扣周赛

欢迎小伙伴们在这里交流分享你的参赛心得以及体验。【前往竞赛】

image.png

3 分 - 检查整数及其两倍数是否存在
4 分 - 制造字母异位词的最小步骤数
5 分 - 推文计数
7 分 - 参加考试的最大学生数

展开讨论
力扣 (LeetCode)发起于 2020-02-09

参加考试的最大学生数 回溯

m,n = len(seats),len(seats[0])
        allnum = m*n
        self.ans = 0
        pos = [(-1,-1),(-1,1),(0,-1)]
        def solver(x,y,m,n,count):
            self.ans = max(self.ans, count)
            now = x*n+y+1
            while now<m*n:
                i,j = now//n, now%n
                if (m*n - now)/2 + count < self.ans: return 
                if seats[i][j]=='.' and not any(0<=i+a<m and 0<=j+b<n and seats[i+a][j+b]==',' for a,b in pos):
                    seats[i][j] = ','
                    solver(i,j,m,n,count+1)
                    seats[i][j] = '.'
                    solver(i,j,m,n,count)
                    break
                now += 1
        solver(0,-1,m,n,0)
        return self.ans
展开全部 42 讨论