Leetcode刷题第一天
自我怜悯与自我感动都没必要,大学生年度人物没有评上,看别人的奖项,三页纸,而我只有一页纸,有时候真的觉得大学很失败,加上最近在找实习,已经面试了快手,酷家乐,momenta三家公司的计算机视觉岗位,第一天面快手,和面试官聊得很开心,当时心里想稳了稳了,可是一天了都还没有消息,第二天又面了剩下两家公司,酷家乐我是直接倒在了一面,momenta问答环节倒也做的不错,但是无奈我的编程能力真的就像狗屎一样,于是痛定思痛,开始刷leetcode,唉,最后找不到实习也就算了,在这个暑假多看一点书充实一下自己,之前总tm自以为是,以为绩点高就万事大吉,我真是个sb.
一、今天刷的题目是
我的代码是
class Solution:
def twosum(self,nums,target):
lens=len(nums)
for i in range(lens):
for j in range(i+1,lens):
if nums[i]+nums[j]!=target:
continue
return [i,j]
return []
Solution().twosum([1,3,2,6],7)
二、解释一下时间复杂度、空间复杂度
参考文章:https://mp.weixin.qq.com/s/1crt5oevFWhhPRz7y4FDng
时间复杂度并不是用来真实代表算法的执行时间,它是用来表示代码执行时间的增长变化趋势的。
空间复杂度程序运行时占用内存的大小
j=1
for i in range(int(input())):
j=j+i
a=1
此时空间复杂度为O(1)
因为无论我们input的值多大,所需开辟的内训空间也不会随着input的变化而变化,当然它代表的也不是真实的所占用的内存空间
例如
i=1
j=2
m=3
等等,此时空间复杂度还是O(1)
但是
a=[]
for i in range(int(input())):
a.append(i+1)
m=1
消耗空间和input数据保持线性增长,此时空间复杂度为O(n)