汤姆叔叔温馨提示30S中转:您的旅途,我们用心守护

核心内容摘要

宫门世家传承千年,甘雨之“焊”竟成舌尖新宠?一篇人民网式的深度探寻
舞蹈老师超级污超级黄视频网站曝光?真相揭秘:那段被疯传的深夜录像到底藏着什么?

视听盛宴不打烊:2024最全亚洲视频在线平台终极指南,告别剧荒就看这一篇!

题目解析给定一个整数数组nums要求找出所有不重复的三元组[nums[i], nums[j], nums[k]]满足索引互不相同i ! j、i ! k、j ! k三数之和为 0nums[i] nums[j] nums[k] 0结果中不能包含重复的三元组核心思路这道题的难点在于去重和时间复杂度优化直接暴力枚举的时间复杂度是 \(O(n^

\)会超时。

我们可以用排序 双指针的方法将时间复杂度优化到 \(O(n^

\)。

算法步骤排序预处理先对数组进行排序这样可以利用有序性进行双指针的移动和去重操作。

固定第一个数遍历数组将当前元素作为三元组的第一个数nums[i]。

如果当前数和前一个数相同直接跳过去重。

如果当前数大于 0因为数组是有序的后面的数也都是正数三数之和不可能为 0直接终止循环。

双指针寻找另外两个数用左指针left i 1和右指针right nums.size() - 1来寻找另外两个数计算三数之和sum nums[i] nums[left] nums[right]如果sum 0说明需要更大的数左指针右移如果sum 0说明需要更小的数右指针左移如果sum 0记录该三元组并移动左右指针跳过重复值完整代码cppclass Solution { public: vectorvectorint threeSum(vectorint nums) { vectorvectorint res; int n nums.size(); if (n

return res; // 数组长度不足3直接返回空 sort(nums.begin(), nums.end()); for (int i 0; i n - 2; i) { // 去重跳过与前一个元素相同的情况 if (i 0 nums[i] nums[i-1]) continue; // 剪枝如果当前数已经大于0后面不可能组成和为0的三元组 if (nums[i]

break; int left i 1; int right n - 1; while (left right) { int sum nums[i] nums[left] nums[right]; if (sum

{ left; } else if (sum

{ right--; } else { // 找到一个符合条件的三元组 res.push_back({nums[i], nums[left], nums[right]}); // 跳过左指针重复值 while (left right nums[left] nums[left1]) left; // 跳过右指针重复值 while (left right nums[right] nums[right-1]) right--; // 移动指针继续寻找 left; right--; } } } return res; } };关键优化点排序去重排序后相同的元素会相邻我们可以很方便地跳过重复值。

剪枝操作当固定的第一个数大于 0 时直接终止循环因为后面的数都是正数不可能组成和为 0 的三元组。

双指针移动找到符合条件的三元组后需要同时移动左右指针并跳过重复值避免生成重复的三元组。

复杂度分析时间复杂度\(O(n^

\)其中排序的时间复杂度是 \(O(n \log n)\)双指针遍历的时间复杂度是 \(O(n^

\)。

空间复杂度\(O(\log n)\)排序的栈空间或 \(O(n)\)如果使用了额外的数组存储结果。

快色免费版-快色免费版应用

相关标签
【预测模型】麻雀搜索算法优化ELMAN神经网络(SSA-ELMAN)的光伏功率预测附Matlab代码 工业声学诊断新应用:FireRedASR-AED-L识别设备异常声音 SGLang前端DSL使用心得:简化编程太实用 **标题:LLM微调实战进阶:从零搭建高效定制化大模型 pipeline(含训练/评估全流程代码)**在 YOLOv11涨点改进 | 独家创新,特å¾�è��å�ˆæ¶¨ç‚¹æ”¹è¿›ç¯‡ | TGRS 2025 | 引入ATEM仿射å�˜æ�¢è��å�ˆå¢�强模å�—,å�«å¤šç§�创新改进点,对边缘和纹ç�†ä¿¡æ�¯è¿›è¡Œè‡ªé€‚应å¢�强,æ��å�‡å°�ç›®æ ‡å’Œå¼±ç›®æ ‡æ£€æµ‹èƒ½åŠ› 3大终极突破方案:Cursor功能限制完全解锁指南 Qwen3-Reranker-8B代码检索功能详解:开发者必备工具 3步焕新老旧设备:轻量级Windows 11系统优化实战指南 3个步骤让黑苹果配置效率提升85%:OpCore Simplify工具实战指南 【持续更新】华为OD机考双机位C卷题库 — 机试真题+在线刷题OJ+算法考点分类+备考攻略+经验分享+高分实现 Java Web 码头船只货柜管理系统系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】 8款AI工具重塑毕业设计:软件工程论文写作与代码开发实战 林业资源管理系统(源码+数据库+文档) 2023最新网易云音乐插件管理工具:BetterNCM安装器告别复杂配置

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123