站内seo和站外seo区别,矿泉水瓶手工制作大全,wordpress怎么绑定paypal,松江团购做网站454.四数之和II
核心思想#xff1a;利用字典的key#xff0c;value 4个数组两两分组#xff0c;nums1nums2 的两两元素之和 及 计数 先存入字典中#xff0c;然后对nums3和nums4的进行元素相加 然后对比字典中是否有对应的key#xff0c;有就countvalue
class Solution…454.四数之和II
核心思想利用字典的keyvalue 4个数组两两分组nums1nums2 的两两元素之和 及 计数 先存入字典中然后对nums3和nums4的进行元素相加 然后对比字典中是否有对应的key有就countvalue
class Solution(object):def fourSumCount(self, nums1, nums2, nums3, nums4):nlen(nums1)hashmapdict()count0for n1 in nums1:for n2 in nums2:if (n1n2) in hashmap:hashmap[n1n2]1else:hashmap[n1n2]1for n3 in nums3:for n4 in nums4:k-(n3n4)if k in hashmap:counthashmap[k]return count
15. 三数之和
重点是去重的逻辑对a,b,c分别设计去重逻辑妙是说卡哥 nums.sort()nlen(nums)res[]for i in range(n):lefti1rightn-1#a去重因为nums[i]值不变,后面nums[left],nums[right]的组合就会有可能重复直接跳过#但需要i0,和前一个元素做对比。 如果是对比num[i] num[i1],会错过b值if i0 and nums[i]nums[i-1] :continuewhile leftright:if(nums[i]nums[left]nums[right]0):right-1elif(nums[i]nums[left]nums[right]0):left1else:res.append([nums[i], nums[left], nums[right]])#当遇到nums[i],nums[left]固定right指向的值和前一个相等则可以跳过while leftright and nums[right]nums[right-1]:right-1while leftright and nums[left]nums[left1]:left1right-1left1return res18.四数之和
…待写