美文网首页
2022-09-29 leetcode 1552 题目,不断优

2022-09-29 leetcode 1552 题目,不断优

作者: 木马音响积木 | 来源:发表于2022-09-28 21:13 被阅读0次

今天写leetcode 1552 题目,不断优化

class Solution:
    def maxDistance(self, position: List[int], m: int) -> int:
        def check(x: int) -> bool:
            pre = position[0]
            cnt = 1
            for i in range(1, len(position)):  #这里优化掉,不用range
                if position[i] - pre >= x:
                    pre = position[i]
                    cnt += 1
            return cnt >= m

        position.sort()
        left, right, ans = 1, position[-1] - position[0], -1
        while left <= right:
            mid = (left + right) // 2;
            if check(mid):
                ans = mid       #这里可以优化掉,赋值
                left = mid + 1
            else:
                right = mid - 1
        
        return ans   #返回left

作者:LeetCode-Solution
链接:https://leetcode.cn/problems/magnetic-force-between-two-balls/solution/liang-qiu-zhi-jian-de-ci-li-by-leetcode-solution/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
class Solution:
    def maxDistance(self, pp: List[int], m: int) -> int:
        pp.sort()
        k=len(pp)
        def check(x):
            cnt=1 
            p=pp[0]
            for i in range(1,k):
                if pp[i] -p >=x:
                    cnt+=1 
                    p=pp[i]
            return cnt>=m
        left=1
        right=pp[-1]
        while left<right:
            mid=left+right+1>>1
            if check(mid):
                left=mid
            else:
                right=mid-1
        return left

再一次优化

class Solution:
    def maxDistance(self, pp: List[int], m: int) -> int:
        pp.sort()
        k=len(pp)
        def check(x):
            cnt=1 
            p=pp[0]
            for i in pp:    #这里不切片,不range
                if i -p >= x:
                    cnt+=1 
                    p=i
            return cnt>=m
        left=1
        right=pp[-1]
        while left<right:
            mid=left+right+1>>1  #右手打法
            if check(mid):
                left=mid
            else:
                right=mid-1
        return left

相关文章

  • 79.单词搜索

    题目 https://leetcode-cn.com/problems/word-search/ 解题思路 深度优...

  • 走楼梯——二维走楼梯(三)

    LeetCode_62_UniquePaths 题目分析: 解法一:循环-动态规划 解法二:循环-动态规划-内存优...

  • 每日一题Leetcode算法

    Leetcode 题目 本文将不断更新,主要内容为解决Leetcode中的算法问题,有比较难的题目可能会单独成文档...

  • LeetCode 477 Total Hamming Dista

    LeetCode 排列组合 题目汇总LeetCode 数字 题目汇总LeetCode 动态规划 题目分类汇总干货!...

  • LeetCode 473 Matchsticks to Squa

    LeetCode 排列组合 题目汇总LeetCode 数字 题目汇总LeetCode 动态规划 题目分类汇总干货!...

  • LeetCode 401 Binary Watch

    LeetCode 排列组合 题目汇总LeetCode 数字 题目汇总LeetCode 动态规划 题目分类汇总干货!...

  • LeetCode 461 Hamming Distance

    LeetCode 排列组合 题目汇总LeetCode 数字 题目汇总LeetCode 动态规划 题目分类汇总干货!...

  • Leetcode 题目

    1.Shortest Distance in a Line https://leetcode.com/articl...

  • 5, 最长回文子串

    题目来源:力扣(LeetCode)题目链接:https://leetcode-cn.com/problems/lo...

  • 跳表ConcurrentSkipListMap

    很久没刷leetcode,今天刷leetcode时,遇到了跳表题目,传送门:中文版leetcode跳表题目,于是学...

网友评论

      本文标题:2022-09-29 leetcode 1552 题目,不断优

      本文链接:https://www.haomeiwen.com/subject/pgwkartx.html