开始刷领扣,主要是再不刷要废了。真写起来发现循环不会写条件不会写,一抬手就变成了C的形状
两数问题
class Solution:
# nums=[2,7,11,15]
# target=int(9)
def twoSum(self,nums,target):
for i in range(0,len(nums)):
for j in range(i+1,len(nums)):
if nums[i]+nums[j]==target:return [i,j]
对是对,结果双重循环直接就超时了,python你执行效率这么差的吗
class Solution:
# nums=[2,7,11,15]
# target=int(9)
def twoSum(self, nums, target):
for i in range(len(nums)):
n = target - nums[i]
if n in nums[i + 1:]:
return[i, nums[i+1:].index(n)+i+1]
一个小时以后终于抄答案过了。用的一层循环然后n=target-nums[i],在nums剩下的项里挨个对看有没有一样的,最后返回两个坐标
坑了半小时的地方是这个n的坐标。我以为它从i遍历到表尾会给我返回相对于总表的下标,比如i是1,它从2开始遍历,目标数是4就会给我返回4,结果返回的会是2,因为它拿它开始遍历的2当做0了。所以要返回相对于总表的下标就得是他自己的索引+i+1。坑死了,不过也算学到了。
还是按通过率刷吧=。=
宝石与石头
class Solution:
def numJewelsInStones(self, J: str, S: str) -> int:
n=0
for each in J:
n +=S.count(each)
return(n)
好消息是这个题一把过了,坏消息是正高兴呢看了眼评论区看见个这
return sum(S.count(i) for i in J)
啊,我是弱智吗?