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

c 开发手机网站开发十大全app软件下载

c 开发手机网站开发,十大全app软件下载,南京网络推广网站,做品牌网站怎么样文章目录 四数之和题目描述示例 1示例 2提示解决方案1#xff1a;【四层遍历查找】解决方案2#xff1a;【哈希表】【三层遍历】 结束语 四数之和 四数之和 题目描述 给你一个由 n 个整数组成的数组 nums #xff0c;和一个目标值 target 。请你找出并返回满足下述全部条件… 文章目录 四数之和题目描述示例 1示例 2提示解决方案1【四层遍历查找】解决方案2【哈希表】【三层遍历】 结束语 四数之和 四数之和 题目描述 给你一个由 n 个整数组成的数组 nums 和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] 若两个四元组元素一一对应则认为两个四元组重复 0 a, b, c, d n a、b、c 和 d 互不相同 nums[a] nums[b] nums[c] nums[d] target 可以按 任意顺序 返回答案 。 示例 1 输入nums [1,0,-1,0,-2,2], target 0输出[[-2,-1,1,2],[-2,0,0,2],[-1,0,0,1]] 示例 2 输入nums [2,2,2,2,2], target 8输出[[2,2,2,2]] 提示 1 nums.length 200-109 nums[i] 109-109 target 109 解决方案1【四层遍历查找】 对于解决【四数之和】这个问题一种直观的解法是四层循环枚举所有可能的四元组然后判断它们的和是否为目标值target但是这样的时间复杂度是 O(n4)对于较大的数组来说是不可接受的。 解决方案2【哈希表】【三层遍历】 在探讨【四数之和】这一算法题之前我相信许多读者已经对【三数之和】有所涉猎。在【【LeetCode刷题笔记6-1】【Python】【三数之和】【哈希表】【中等】】中我详细介绍了如何设计基于【哈希表】的算法解决【三数之和】问题。 现在摆在我们面前的是【四数之和】问题它与【三数之和】在本质上是一样的。因此我们很自然地会把解决【三数之和】的算法搬过来在此基础上修改从而解决【四数之和】问题。 完整代码如下 class Solution:def fourSum(self, nums: List[int], target: int) - List[List[int]]:hash_map {}num_idx 0new_nums []for idx, num in enumerate(nums):if num not in hash_map:hash_map[num] [num_idx]new_nums.append(num)num_idx 1else:# 修改1原数组的任意元素都可以重复至多四次if len(hash_map[num]) 4: hash_map[num].append(num_idx)new_nums.append(num)num_idx 1else:passresult_list [] n len(new_nums)is_used_results set()# 修改2两层遍历改用三层遍历for i in range(n): for j in range(i1, n): for k in range(j1, n):if target -(new_nums[i] new_nums[j] new_nums[k]) in hash_map: for m in hash_map[target -(new_nums[i] new_nums[j] new_nums[k])]: if m i:continueelif m j:continue# 修改3在进行索引去重操作时多判断一次elif m k:continueelse:sorted_result tuple(sorted([new_nums[k], new_nums[i], new_nums[j], new_nums[m]]))if sorted_result in is_used_results: passelse:result_list.append([new_nums[k], new_nums[i], new_nums[j], new_nums[m]]) is_used_results.add(sorted_result) return result_list如果对上面代码的执行逻辑不太熟悉建议参考一下【【LeetCode刷题笔记6-1】【Python】【三数之和】【哈希表】【中等】】中的代码上面的代码和解决【三数之和】的代码绝大部分是一致的注释和算法逻辑也在【【LeetCode刷题笔记6-1】【Python】【三数之和】【哈希表】【中等】】叙述的非常清楚。 因此在这篇博客中我主要叙述一下修改细节。 与【三数之和】问题一样【四数之和】的原数组nums也会出现冗余的情况。但不一样的是【四数之和】允许原数组nums的元素重复至多四次因为存在num*4 target的情况而【三数之和】对于除0以外的任意元素至多重复两次。 基于这个认知我们需要修改【原数组去重部分的代码】使得原数组的任意元素都可以重复至多四次。修改之处在上面的代码已标明。 由于是【四数之和】因此需要从两层遍历改用三层遍历 由于是【四数之和】需要保证四个索引互不相同因此需要额外多进行一次去重操作。 运行结果 复杂度分析 时间复杂度O(N3)其中 N 是新数组new_nums元素的数量。 三层循环遍历新数组 O(N3) 空间复杂度O(N) 需要用哈希表和列表存放新数组 O(N) 结束语 亲爱的读者感谢您花时间阅读我们的博客。我们非常重视您的反馈和意见因此在这里鼓励您对我们的博客进行评论。您的建议和看法对我们来说非常重要这有助于我们更好地了解您的需求并提供更高质量的内容和服务。无论您是喜欢我们的博客还是对其有任何疑问或建议我们都非常期待您的留言。让我们一起互动共同进步谢谢您的支持和参与我会坚持不懈地创作并持续优化博文质量为您提供更好的阅读体验。谢谢您的阅读
http://www.zqtcl.cn/news/607352/

相关文章:

  • 网站站内logo怎么做朋友圈广告30元 1000次
  • 绍兴做网站北京做公司网站
  • 青浦区网站建设公司商丘网站建设费用
  • 百度网站是怎么建设的wordpress媒体主题
  • 孝感网站建设xgsh国内比百度好的搜索引擎
  • 阅读网站怎样做网站右侧固定标题怎么做
  • 网站开发多少钱农民wordpress acf破解版
  • 厦门网站建设培训云南最便宜的网站建设
  • 吉安手机网站建设html网页布局
  • wordpress英文文章格式怎样给网站做优化
  • 新网站友链网店托管公司
  • 期末作业制作网站网站上传根目录
  • 新网站不被收录的原因兰州网络seo公司
  • 男生可以做网站编辑工作吗网站域名跟谁买
  • 我市精神文明建设的门户网站做网站需要写代码
  • 新网站推广网站搜索引擎优化的步骤
  • 网站建设20推广公司网站建设推广方案
  • 如何设计酒店网站建设好的交互网站
  • 怎么把自己的网站放到百度上九亭做网站
  • 张家界旅游网站建设网页设计作品欣赏分析
  • 订阅号自定义可以做链接网站不做网站dreamwa
  • 电子商务网站规划的原则做网站的集群方案
  • 山东建设银行怎么招聘网站自己做商城网站
  • 建设网站成本预算网站页面设计尺寸
  • 微官网和微网站首页房产网怎么查到房产
  • 高端服装产品网站建设织梦网站识别
  • 做调像什么网站找活注册网站请签署意见是写无
  • 郑州公司网站设计深圳福田有哪些公司
  • 怎么看网站是谁做的asp企业网站开发技术
  • 传奇手游网站大全9377编辑器wordpress