题解 | #不重复打印排序数组中相加和为给定值的所有三元组#

不重复打印排序数组中相加和为给定值的所有三元组

https://www.nowcoder.com/practice/11b7dd7cbf064900bc664bb5fd4e2fab

import sys

n,k = map(int,input().split())
arr = list(map(int,input().split()))
for i in range(0,n):
    if i > 0 and arr[i] == arr[i-1]:
        continue
    left = i+1
    right = n-1
    while left < right:
        if arr[i] +arr[left] + arr[right] < k:
            left += 1
        elif arr[i] +arr[left] + arr[right]== k:
            if arr[i] < arr[left] and arr[left] < arr[right]:
                print(arr[i],arr[left], arr[right])
            if arr[left] == arr[left+1]:
                left += 1
            if arr[right] == arr[right-1]:
                right -= 1
            left += 1
            right -= 1
        elif arr[i] +arr[left] + arr[right] > k:
            right -= 1

全部评论

相关推荐

01-21 12:26
暨南大学 golang
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
牛客网
牛客企业服务