Suzy找到实习了吗 Day 1 | 704. 二分查找、27. 移除元素

Suzy找到实习了吗 | 704. 二分查找、27. 移除元素

  • Leetcode 704:二分搜索
    • 收获
      • Divide and conquer
      • Recursive relation
      • Python 3 class类的写法
  • Leetcode 27
    • 收获
      • 双指针法
    • 算法时间分析
      • 相关题目推荐(未完成)

Leetcode 704:二分搜索

Suzy找到实习了吗 Day 1 | 704. 二分查找、27. 移除元素_第1张图片
给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。

收获

不知不觉从暑假开始,就从数组开始刷,这是第三次做这个题了

Divide and conquer

二分搜索

Recursive relation

T(n)=T(n/2)+O(1), 给定一个包含有n/2个元素的有序数组B[n/2],我们要使用二分法知道元素x是否存在这个数组中。 也就是说,最多经历log2(n)+1次步骤之后,我们获得查找的结果。 所以二分查找算法的时间复杂度为O(logn)

Python 3 class类的写法

教程:Python 3 class
遇到的问题:在定义class子函数时的第一个参数一定是self。在class中如果子函数function 1 call 子函数function 2:self.function2()

Leetcode 27

Suzy找到实习了吗 Day 1 | 704. 二分查找、27. 移除元素_第2张图片

收获

双指针法

慢指针:追踪更新后的数组的下标
快指针:寻找旧数组中值不等于val的数字

算法时间分析

时间复杂度:O(n)
空间复杂度:O(1)

相关题目推荐(未完成)

26.删除排序数组中的重复项
283.移动零
844.比较含退格的字符串
977.有序数组的平方

你可能感兴趣的:(leetcode,算法,职场和发展)