from IPython.display import Image
Image(filename="./data/3_01.png",width=800,height=960)
原始方法
deftwoSum(nums,target):
# 存放结果编号数据
res=[]
# 深拷贝,把原数据复制到newnums里
newnums=nums[:]
# 对新数组排序
newnums.sort()
left=0
right=len(newnums)-1while left<right:
if newnums[left]+newnums[right]==target:
for i inrange(0,len(nums)):
if nums[i]==newnums[left]:
res.append(i)
breakfor i inrange(len(nums)-1,-1,-1):
if nums[i]==newnums[right]:
res.append(i)
break
res.sort()
breakelif newnums[left]+newnums[right]<target:
left=left+1elif newnums[left]+newnums[right]>target:
right=right-1return (res[0]+1,res[1]+1)
nums=[3,7,10,4,5]
target=11
twoSum(nums,target)
(2, 2)
哈希算法
deftwoSum(nums,target):
dict={}
for i inrange(len(nums)):
# 待查询数字
m=nums[i]
# target-m是否在字典中if target-m indict:
# 如果已存在,则返回这两个数的下标return (dict[target-m]+1,i+1)
# 如果不存在则记录键值对dict[m]=i
twoSum(nums,target)
(2, 4)
三.单词模式匹配
defwordPattern(wordPattern,input):
word=input.split(" ")
iflen(word)!=len(wordPattern):
returnFalsehash={}
used={}
for i inrange(len(wordPattern)):
if wordPattern[i] inhash:
ifhash[wordPattern[i]]!=word[i]:
returnFalseelse:
if word[i] in used:
returnFalsehash[wordPattern[i]]=word[i]
used[word[i]]=TruereturnTrue
defgetHint(secret,guess):
secret_dict={}
guess_dict={}
A=0
B=0for i inrange(len(secret)):
if secret[i]==guess[i]:
A+=1else:
if secret[i] in secret_dict:
secret_dict[secret[i]]=secret_dict[secret[i]]+1else:
secret_dict[secret[i]]=1if guess[i] in guess_dict:
guess_dict[guess[i]]=guess_dict[guess[i]]+1else:
guess_dict[guess[i]]=1for digit in secret_dict:
if digit in guess_dict:
B+=min(secret_dict[digit],guess_dict[digit])
returnstr(A)+"A"+str(B)+"B"
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· DeepSeek火爆全网,官网宕机?本地部署一个随便玩「LLM探索」
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 互联网不景气了那就玩玩嵌入式吧,用纯.NET开发并制作一个智能桌面机器人(三):用.NET IoT库
· 上周热点回顾(1.20-1.26)