当前位置: 首页> 教育> 培训 > 优化方案物理必修三电子版_营销软件大全_什么叫seo优化_重庆seo管理平台

优化方案物理必修三电子版_营销软件大全_什么叫seo优化_重庆seo管理平台

时间:2025/7/9 19:20:20来源:https://blog.csdn.net/m0_46330606/article/details/146147447 浏览次数:1次
优化方案物理必修三电子版_营销软件大全_什么叫seo优化_重庆seo管理平台

给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != ji != k
j != k ,同时还满足 nums[i] + nums[j] + nums[k] == 0 。请你返回所有和为 0 且不重复的三元组。

注意:答案中不可以包含重复的三元组。

示例 1:

输入:nums = [-1,0,1,2,-1,-4]
输出:[[-1,-1,2],[-1,0,1]]
解释:
nums[0] + nums[1] + nums[2] = (-1) + 0 + 1 = 0 。
nums[1] + nums[2] + nums[4] = 0 + 1 + (-1) = 0 。
nums[0] + nums[3] + nums[4] = (-1) + 2 + (-1) = 0 。
不同的三元组是 [-1,0,1] 和 [-1,-1,2] 。
注意,输出的顺序和三元组的顺序并不重要。

示例 2:
输入:nums = [0,1,1]
输出:[]
解释:唯一可能的三元组和不为 0 。

示例 3:
输入:nums = [0,0,0]
输出:[[0,0,0]]
解释:唯一可能的三元组和为 0 。

提示:

3 <= nums.length <= 3000
-105 <= nums[i] <= 105

上来先暴破,果然超出时间限制。两重循环(第三个数用0-前两个)+将小列表排序用于去重(列表相等==是指元素及位置都相等,所以我排序后再判定相等)
在这里插入图片描述
开始认真读题,主要获取到以下几个信息:
1.三个数字均在数组中,且和为0。
2.位置各不相同。
3.答案需要去重。
卡了两天,还是看了别人的解法:使用双指针。
大体思路是这样的:首先排序(便于后面的跳过重复元素),然后固定一个数(最外层的循环),然后使用双指针法在排序后的数组中寻找另外两个数。
其中有优化的条件(比如在后两个最小数字都无法满足要求时),也有跳过重复元素(比如在最开始确定第一个数字,或最后确定三元组时),这些细节的地方要多注意。
if x + nums[i + 1] + nums[i + 2] > 0:用break而if x + nums[-1] + nums[-2] < 0:用continue的原因:前面三个的和都大于0,那这个循环就不用继续下去了,后面只会更大,而第一个与后面两个之和小于0,虽然这一组不用继续了,但是x后面的数字是大一点的,说不定会有机会,可以重新赋值x再作判断。

class Solution(object):def threeSum(self, nums):""":type nums: List[int]:rtype: List[List[int]]"""nums.sort()ans = []n = len(nums)for i in range(n-2):x = nums[i]if i > 0 and x == nums[i-1]:continueif x + nums[i + 1] + nums[i + 2] > 0:breakif x + nums[-1] + nums[-2]<0:continuej = i + 1k =  n - 1while j < k:s = x + nums[j] + nums[k]if s > 0:k -= 1elif s < 0:j += 1else:ans.append([x, nums[j], nums[k]])j += 1while j < k and nums[j] == nums[j-1]:j +=1k-=1while k>j and nums[k] == nums[k+1]:k-=1return ans
关键字:优化方案物理必修三电子版_营销软件大全_什么叫seo优化_重庆seo管理平台

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: