如何有效率的刷leetcode-LeetCode:利用python和C++来刷题

时间:2024-07-26 14:52:12
【文件属性】:

文件名称:如何有效率的刷leetcode-LeetCode:利用python和C++来刷题

文件大小:136KB

文件格式:ZIP

更新时间:2024-07-26 14:52:12

系统开源

如何有效率的刷leetcode LeetCode 利用python和C++来刷题 两数之和 题目: 解析:这道题一开始看的时候,有点类似于《剑指offer》的面试题57:和为s的数字。 这那道题中,数组时排序数组,设置两个指针,分别指向头和尾。 当两者之和大于s时,把尾指针向前移;当两者之和小于s时,把头指针向后移。 但这题不是排序数组,是一个普通的序列。 这里有几种方法,leetcode都有详解。 暴力方法:把target-nums[i]与后面n-i项相比,看是否存在。此时复杂度为O(n^2) 利用哈希表,遍历两次。在第一次迭代中,我们将每个元素的值和它的索引添加到表中。 然后,在第二次迭代中,我们将检查每个元素所对应的目标元素(target - nums[i])是否存在于表中。 注意,该目标元素不能是 nums[i]本身!此时时间复杂度为O(n),空间复杂度为O(n) 利用哈希表,遍历一次。如果存在两数之和为target的话,数字是成对出现的,只是会有遍历的先后问题。所以我们可以一边 把target - nums[i]存入哈希表,一边判断num[i]是否已经存在哈希表。此时间复杂度


网友评论