数据结构初学者,第一天学习内容有哪些?

2026-05-16 11:051阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计570个文字,预计阅读时间需要3分钟。

数据结构初学者,第一天学习内容有哪些?

《力扣-数据结构入门:https://leetcode.cn/study-plan/data-structures/,在计算机科学中,数据结构是存储和组织数据的方式。正确的数据结构选择可以提升算法的效率。在计算机程序设计中,数据结构是组织数据的方法。》

力扣-数据结构入门:leetcode.cn/study-plan/data-structures/

数据结构初学者,第一天学习内容有哪些?

在计算机科学中,数据结构是计算机中存储、组织数据的方式。

正确的数据结构选择可以提高算法的效率。在计算机程序设计的过程中,选择适当的数据结构是一项重要工作。许多大型系统的编写经验显示,程序设计的困难程度与最终成果的质量与表现,取决于是否选择了最适合的数据结构。 一共14天,主要是简单题。

第一天(2022年9月18日)

217. 存在重复元素

给定数组,判断是否存在重复元素。 做法:

  • 直接遍历(穷举)
  • 排序后,比较每个元素和下一个元素
  • 哈希表
  • 直接遍历会超时。 2的时间复杂度是O(nlogn) 也就是排序的时间复杂度 3的时间复杂度是O(n),但需要额外的O(n)辅助空间。 (穷举法基本都能想到,但很容易超时,后面只有在穷举法能通过时才列出来。)

    3比较简单,这里写一下3的做法:

    return len(nums) != len(set(nums))

    53. 最大子数组和

    给定数组,求其中一个连续数组和的最大值。

    比较容易想到的是用一个数组记录目前位置最大的值(动态规划)。

    用 dp[i] 表示以i位置结尾的连续数组和的最大值。 最后返回dp数组中最大值。

    class Solution: def maxSubArray(self, nums: List[int]) -> int: length = len(nums) dp = [0 for i in range(length)] for i in range(length): dp[i] = max(dp[i - 1], 0) + nums[i] return max(dp)

    题解给出了一种省略dp数组的方法:

    class Solution: def maxSubArray(self, nums: List[int]) -> int: pre = 0 res = nums[0] for x in nums: pre = max(pre+x ,x) res = max(res, pre) return res

    本文共计570个文字,预计阅读时间需要3分钟。

    数据结构初学者,第一天学习内容有哪些?

    《力扣-数据结构入门:https://leetcode.cn/study-plan/data-structures/,在计算机科学中,数据结构是存储和组织数据的方式。正确的数据结构选择可以提升算法的效率。在计算机程序设计中,数据结构是组织数据的方法。》

    力扣-数据结构入门:leetcode.cn/study-plan/data-structures/

    数据结构初学者,第一天学习内容有哪些?

    在计算机科学中,数据结构是计算机中存储、组织数据的方式。

    正确的数据结构选择可以提高算法的效率。在计算机程序设计的过程中,选择适当的数据结构是一项重要工作。许多大型系统的编写经验显示,程序设计的困难程度与最终成果的质量与表现,取决于是否选择了最适合的数据结构。 一共14天,主要是简单题。

    第一天(2022年9月18日)

    217. 存在重复元素

    给定数组,判断是否存在重复元素。 做法:

  • 直接遍历(穷举)
  • 排序后,比较每个元素和下一个元素
  • 哈希表
  • 直接遍历会超时。 2的时间复杂度是O(nlogn) 也就是排序的时间复杂度 3的时间复杂度是O(n),但需要额外的O(n)辅助空间。 (穷举法基本都能想到,但很容易超时,后面只有在穷举法能通过时才列出来。)

    3比较简单,这里写一下3的做法:

    return len(nums) != len(set(nums))

    53. 最大子数组和

    给定数组,求其中一个连续数组和的最大值。

    比较容易想到的是用一个数组记录目前位置最大的值(动态规划)。

    用 dp[i] 表示以i位置结尾的连续数组和的最大值。 最后返回dp数组中最大值。

    class Solution: def maxSubArray(self, nums: List[int]) -> int: length = len(nums) dp = [0 for i in range(length)] for i in range(length): dp[i] = max(dp[i - 1], 0) + nums[i] return max(dp)

    题解给出了一种省略dp数组的方法:

    class Solution: def maxSubArray(self, nums: List[int]) -> int: pre = 0 res = nums[0] for x in nums: pre = max(pre+x ,x) res = max(res, pre) return res