惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

云风的 BLOG
云风的 BLOG
The GitHub Blog
The GitHub Blog
A
About on SuperTechFans
P
Proofpoint News Feed
G
Google Developers Blog
Stack Overflow Blog
Stack Overflow Blog
IT之家
IT之家
Microsoft Security Blog
Microsoft Security Blog
F
Fortinet All Blogs
人人都是产品经理
人人都是产品经理
博客园 - 叶小钗
C
Check Point Blog
Microsoft Azure Blog
Microsoft Azure Blog
aimingoo的专栏
aimingoo的专栏
月光博客
月光博客
美团技术团队
D
Docker
博客园 - Franky
Y
Y Combinator Blog
大猫的无限游戏
大猫的无限游戏
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 【当耐特】
罗磊的独立博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报

会走路的三百块

会走路的三百块 会走路的三百块 其他 | 会走路的三百块 会走路的三百块 Unity-业务框架 | 会走路的三百块 其他 | 会走路的三百块 part 4 踩坑记录 | 会走路的三百块 Unity-进阶知识 | 会走路的三百块 Unity-天命6源码 | 会走路的三百块 CICD | 会走路的三百块 part 1 linux的历史节点 | 会走路的三百块 C的编译器 | 会走路的三百块 字符串常量存储 | 会走路的三百块 第三章 数据和C | 会走路的三百块 类型转换和缩减 | 会走路的三百块 零散知识点 | 会走路的三百块 DNS选择机制 | 会走路的三百块 网络八股Cache | 会走路的三百块 第三章-数据和C | 会走路的三百块 一些零散的知识点 | 会走路的三百块 自顶向下 | 会走路的三百块 linux简单速通 | 会走路的三百块 设计图的概述 | 会走路的三百块 AI和自动化暂存 | 会走路的三百块 第一章 初识C语言 | 会走路的三百块 Games101 | 会走路的三百块 Unity-Lua补充 | 会走路的三百块 Unity-个人Demo | 会走路的三百块 Unity-基础知识 | 会走路的三百块 Unity环境搭建 | 会走路的三百块
leetcode-EP1 | 会走路的三百块
2026-05-25 · via 会走路的三百块

创建于 2022年10月12日 06:28:02 · 约203字

LeetCode 75 - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台

leetcode-EP1 ​

二分查找 ​

分类 ​

leetcode题号: 704. 二分查找 代码随想录视频链接 时间:37min

代码 ​

Click to see more

python

def search(nums, target: int) -> int:  
    result = -1  
    right = len(nums) - 1  
    left = 0  
    middle = int(right / 2)  
    while True:  
        if left == right:  
            if target == nums[middle]:  
                result = middle  
            break  
        if target == nums[middle]:  
            result = middle  
            break  
        elif target > nums[middle]:  
            left = middle + 1  
            middle = int((left + right) / 2)  
        elif target < nums[middle]:  
            if middle==left: # 处理边界条件,例如两个元素,为什右边不会有这个情况  
                right = middle  
            else:  
                right = middle - 1  
            middle = int((left + right) / 2)  
    return result  
  
if __name__ == '__main__':  
    print(search([2,3,4,5,6],7))

运行结果

注意的点: ​

  • 注意边界条件开闭情况,一般是左闭右开或左闭右闭,在中间处理的时候也遵循这个
  • 二分要在有序序列中查找
  • 其他:None

删除元素 ​

分类 ​

leetcode题号:27 代码随想录视频链接 时间:45min

代码 ​

Click to see more

python



    def removeElement(self, nums: List[int], val: int) -> int:  
    '''
    双指针法
    '''
        f=0
        s=0

        while (f<=len(nums)-1):
            if nums[f]==val:
                f+=1
                continue
            else:
                nums[s]=nums[f]
                f+=1
                s+=1
        return len(nums[:s])

    def removeElement(self, nums: List[int], val: int) -> int:  
    ‘‘‘
    暴力移除
    '''
        i = 0
        while (i < len(nums)):
            if nums[i] == val:
                for j in range(i, len(nums) - 1):
                    nums[j] = nums[j + 1]
                del(nums[-1])
            else:
                i += 1
        return len(nums)

运行结果

注意的点: ​

  • 主要就是处理边界条件,双指针fast一直拿最新的数据,slow就管着存,注意最后一个元素和重复元素的处理
  • 其他:None