其他分享
首页 > 其他分享> > 20211116_datawhale31期_leetcode刷题_0预习

20211116_datawhale31期_leetcode刷题_0预习

作者:互联网

0 序言及预习

在这里插入图片描述

目录

来源

Datewhle31期__LeetCode 刷题 :

1 数据结构与算法

在这里插入图片描述

目的 : 对于待解决的问题,我们追求的是:选择更加合适的「数据结构」,使用花费时间更少、占用空间更小的「算法」

关于算法和数据结构自己总结:
1 数据结构,我们可以按照数据的 「逻辑结构」「物理结构来进行分类。

关于逻辑和物理结构详情总结:

请添加图片描述

2 算法

2 算法复杂度

2.1 时间复杂度

时间复杂度(Time Complexity):在问题的输入规模为 n 的条件下,算法运行所需要花费的时间,可以记作为 T(n)。

我们将基本操作次数作为时间复杂度的度量标准。换句话说,时间复杂度跟算法中基本操作次数的数量正相关

基本操作 :算法执行中的每一条语句。每一次基本操作都可在常数时间内完成。

「渐进符号」 实际上是专门用来刻画函数的增长速度的, 常忽略低阶幂、系数、常量不影响规模大时增长速率的部分, 常用 Θ , O , Ω \Theta, O, \Omega Θ,O,Ω表示渐进的: 上下限(夹逼准则), 上限, 下限.




2.2 空间复杂度

空间复杂度(Space Complexity):在问题的输入规模为 n 的条件下,算法所占用的空间大小,可以记作为 S(n)。一般将 算法的辅助空间 作为衡量空间复杂度的标准。

3 leetcode

  1. 暴力

class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        size = len(nums)
        for i in range(size):
            for j in range(i + 1, size):
                if nums[i] + nums[j] == target:
                    return [i,j]
        return[]
        

2.哈希—字典:


class Solution:
    def twoSum(self, nums: List[int], target: int) -> List[int]:
        size = len(nums)
        dic = {}
        for i in range(size):
            if target - nums[i] in dic:
                return [i,dic[target - nums[i]]]
            dic[nums[i]] = i   # 没找到符合条件 使用字典存值及下标  省去再次遍历下次直接访问
        return []
  1. 结果对比

在这里插入图片描述

标签:语句,20211116,right,datawhale31,复杂度,算法,时间,leetcode,left
来源: https://blog.csdn.net/yuliuchenyin/article/details/121353935