当前位置: 首页 > wzjs >正文

自学网站开发软件开发魔方优化大师官网下载

自学网站开发软件开发,魔方优化大师官网下载,怎样创建网站平台,wordpress后台登陆不进去454.四数相加II 题目 思路与解法 第一想法: 无 carl的讲解: 前两个为一组,后两个为一组。遍历前两个可能的加值,再在后两组中寻找有没有前面值的负值,若有就是一组。 我认为,重点在于将问题简化为前两个…

454.四数相加II

题目

在这里插入图片描述

思路与解法

第一想法:
carl的讲解: 前两个为一组,后两个为一组。遍历前两个可能的加值,再在后两组中寻找有没有前面值的负值,若有就是一组。

我认为,重点在于将问题简化为前两个数组和后两个数组的逻辑。

class Solution:def fourSumCount(self, nums1: List[int], nums2: List[int], nums3: List[int], nums4: List[int]) -> int:from collections import defaultdictsum_dict = defaultdict(int)for a in nums1:for b in nums2:sum_dict[a+b] += 1count = 0for c in nums3:for d in nums4:if (0-c-d) in sum_dict:count += sum_dict[0-c-d]return count 

383. 赎金信

题目

在这里插入图片描述

思路与解法

第一想法: 将magazine中的字母存在字典中,key是字母,value是出现的次数。然后遍历ransomNote的字母,在magazine字典中出现一次就value减一,value小于0就返回False。若字典中没有,就直接返会False。最后都通过了,就返回True。

class Solution:def canConstruct(self, ransomNote: str, magazine: str) -> bool:from collections import defaultdictmagazine_dict = defaultdict(int)for a in magazine:magazine_dict[a] += 1for b in ransomNote:if b not in magazine_dict:return Falsemagazine_dict[b] -= 1if magazine_dict[b] < 0:return Falsereturn True

15. 三数之和

题目

思路与解法

第一想法: 双指针,三个数,for i in enumerate(nums),i代表第一个,low = i+1, fast = low+1,代表后面两个。然后low 和 fast遍历数组来和i相加看是不是等于0。i也不断往后遍历。
但是忽略了去重。加上去重就是对的,但是超时了。

class Solution:def threeSum(self, nums: List[int]) -> List[List[int]]:res = []nums.sort()for i, num  in enumerate(nums):low = i + 1if i > 0 and nums[i] == nums[i-1]:continuewhile low < len(nums) -1 :fast = low + 1while fast < len(nums):if nums[low] + nums[fast] + num == 0:res.append([num, nums[low], nums[fast]])while fast + 1 < len(nums) and nums[fast + 1] == nums[fast]:fast += 1fast += 1while low + 1 < len(nums) -1 and nums[low+1] == nums[low]:low += 1low += 1return res

carl的讲解: 让fast指针从最右边开始,因为排序了,所以fast(right)指向的是最大值

class Solution:def threeSum(self, nums: List[int]) -> List[List[int]]:result = []nums.sort()for i in range(len(nums)):# 如果第一个元素已经大于0,不需要进一步检查if nums[i] > 0:return result# 跳过相同的元素以避免重复if i > 0 and nums[i] == nums[i - 1]:continueleft = i + 1right = len(nums) - 1while right > left:sum_ = nums[i] + nums[left] + nums[right]if sum_ < 0:left += 1elif sum_ > 0:right -= 1else:result.append([nums[i], nums[left], nums[right]])# 跳过相同的元素以避免重复while right > left and nums[right] == nums[right - 1]:right -= 1while right > left and nums[left] == nums[left + 1]:left += 1right -= 1left += 1return result

18. 四数之和

题目

在这里插入图片描述

思路与解法

carl的讲解:

class Solution:def fourSum(self, nums: List[int], target: int) -> List[List[int]]:nums.sort()n = len(nums)result = []for i in range(n):if nums[i] > target and nums[i] > 0 and target > 0:# 剪枝(可省)breakif i > 0 and nums[i] == nums[i-1]:# 去重continuefor j in range(i+1, n):if nums[i] + nums[j] > target and target > 0: #剪枝(可省)breakif j > i+1 and nums[j] == nums[j-1]: # 去重continueleft, right = j+1, n-1while left < right:s = nums[i] + nums[j] + nums[left] + nums[right]if s == target:result.append([nums[i], nums[j], nums[left], nums[right]])while left < right and nums[left] == nums[left+1]:left += 1while left < right and nums[right] == nums[right-1]:right -= 1left += 1right -= 1elif s < target:left += 1else:right -= 1return result
http://www.dtcms.com/wzjs/832113.html

相关文章:

  • 网站开发要什么专业淘宝网站的推广与优化
  • 珠海新盈科技有限公司 网站建设手机html网页制作
  • 陇南市建设局网站阳江网站建设公司
  • 携程网站联盟宁波网站设计公司
  • iis7 无法访问此网站网络营销策划方案的编写方法及内容
  • 网站建设的市场策划网站安全维护怎么做
  • 网站建设 视频教程网站机房建设
  • 福州网站开发天元建设集团有限公司董事长
  • 泰州 做网站大型服务器多少钱一台
  • 网站建设和网站设计区别搜狗收录提交入口
  • 建设银行网站信息补充织梦网站后台网址
  • 网站建设平面要多少分辨率阿里云 建设网站怎么样
  • dw怎么做网站标题图标济南模版网站
  • php和什么语言做网站北京网站制作公司兴田德润实力强
  • 建立商城网站公司logo背景墙设计效果图
  • u网站建设能利用双股铜芯电话线做网站吗
  • 苏州信网网站建设技术有限公司响应式网站的制作网站制作
  • 百度网站推广公司广元建设局网站
  • 建设二手商品网站总结山东青岛最新消息
  • 登陆国外网站速度慢磁力狗
  • 常德做网站网站开发工程师适合女生吗
  • 网站推广引流最快方法seo推广话术
  • 建个小型网站服务器买2g 空间做下载网站
  • 招商网站建设定做网易导入到wordpress图片
  • 在网站做专题新建网站建设
  • 大连提高网站排名深圳宝安网站建设公司
  • 百度地图嵌入公司网站青岛一品网站建设
  • 如何做医疗网站的专题页为什么网站 关键词策划
  • 深圳公司网站设计公司哪些公司做网站开发
  • 国外优秀购物网站大发 wordpress ifanr