12.3--12.4学习情况
2023-12-13 22:37:30
一、349.两个数组的交集
思路:
先观察理解题目,将存储到的数组和范围确定下来,建立一个用于存储最终结果的数组。 老步骤,对所建立的数组进行循环遍历,将其存储到建立的count数组中并临时存储自加1, 之后再对范围内的总长度进行比较解析,将数组结果返回到最终结果的数组中去。
from typing import List
class Solution:
def intersection(self,nums1:List[int],nums2:List[int]):
'''初始化数组遍历存储,且题目中明确规定数组长度小于1000'''
count1=[0]*1001
count2=[0]*1001
#定义一个存储最终交集的数
result=[]
#开始对nums1,nums2数组进行遍历,并将遍历后的数组自加一存储
for i in range(len(nums1)):
count1[nums1[i]]+=1
for j in range(len(nums2)):
count2[nums2[j]]+=1
#对k在1000范围内开始遍历,并比较两者的乘积值是否大于零,大于零则添加到数组result中存储
for k in range(1001):
if count1[k]*count2[k]>0:
result.append(k)
return result
二、202.快乐数
思路:
先创建一个空列表,将给出的n存储到数组中 对数组进行循环,添加一个新的数默认初始化为0 将n转化为字符串进行遍历,将遍历到各个位置上的数进行平方和相乘并且将相加赋值给最开始初始化的数 增加判断条件,判断乘积得到的n_nums循环到最后是否等于1,不等于1时报错,等于1时返回结果True
class Solution:
def HappyNums(self,n:int)->int:
record=[]
while n not in record:
record.append(n)
n_nums=0
n_str=str(n)
for i in n_str:
n_nums+=int(i)**2
if n_nums==1:
return True
else:
n=n_nums
return False
#test
r=Solution()
print(r.HappyNums(13))
三、454.四数相加II
思路:
利用字典存储将遍历的数组中的元素和元素和,遍历其中元素和是否在hashmap字典中,有的话继续将结果自加一往后存储,否则将其暂时存储为1,定义一个count将其初始值转为0,并将对剩下两个元素的元素和进行存储,判断当前存贮的结果值是否满足条件,最后返回输出结果
from typing import List
class Solution:
def fournums(self,nums1:List[int],nums2:List[int],nums3:List[int],nums4:List[int])->List[int]:
hashmap=dict()
for n1 in nums1:
for n2 in nums2:
if n1+n2 in hashmap:
hashmap[n1+n2]+=1
else:
hashmap[n1+n2]=1
count=0
for n3 in nums3:
for n4 in nums4:
key=-n3-n4
if key in hashmap:
count+=hashmap[key]
return count
文章来源:https://blog.csdn.net/m0_74396770/article/details/134818395
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!