Python排序+双指针【Dream的刷题乐园⚡】❤️LeetCode每日游园系列❤️——16. 最接近的三数之和

举报
是Dream呀 发表于 2022/01/29 22:32:10 2022/01/29
【摘要】 📢📢📢📣📣📣 🐸Hello,大家好我是Dream,欢迎大家来到刷题乐园😜😜😜 🐹游园须知:这片乐园从不缺乏天才,努力才是你的最终入场券!🚀🚀🚀 🐹导游主要使...

在这里插入图片描述

📢📢📢📣📣📣
🐸Hello,大家好我是Dream,欢迎大家来到刷题乐园😜😜😜

🐹游园须知:这片乐园从不缺乏天才,努力才是你的最终入场券!🚀🚀🚀

🐹导游主要使用Python语言,同时欢迎其他语言的小伙伴进来玩耍☀️☀️☀️
🐹游园过程中,如果发现有错误的话,欢迎大家评论区及时斧正❤️❤️❤️

🐹最后,祝大家游园愉快,一起加油进步🍺🍺🍺

💦乐园描述

给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。

示例:

输入:nums = [-1,2,1,-4], target = 1
输出:2
解释:与 target 最接近的和是 2 (-1 + 2 + 1 = 2) 。
 

提示:

3 <= nums.length <= 10^3
-10^3 <= nums[i] <= 10^3
-10^4 <= target <= 10^4

💦游园准备

算法流程:
1.特判,对于数组长度nn,如果数组为Null或者数组长度小于3,返回None。
2.对数组进行排序,并定义resres,保存最接近和。
3.遍历排序后数组:

  1. 对于重复元素,跳过,避免重复计算(也可以不跳过)
  2. 令左指针L=i+1,右指针R=n−1,当L<R时,执行循环:
  3. 令cur_sum=nums[i]+nums[L]+nums[R],如果a=target,返回targettarget
  4. 若abs(a-target)<abs(res-target)说明a更接近目标,更新res
  5. 若a−target大于0,说明nums[R]太大,R左移
  6. 若a−target小于0,说明nums[L]太小,L右移

复杂度分析
时间复杂度:O(n**2)

💦开始游玩

# -*-coding:utf-8 -*-
# @Author:到点了,心疼徐哥哥
# 奥利给干!!!
def threeSumClosest(nums,target):
    n=len(nums)
    if(not nums or n<3):
        return None
    nums.sort()
    res=float('inf')
    for i in range(n):
        if (i>0 and nums[i]==nums[i-1]):
            continue
        L=i+1
        R=n-1
        while(L<R):
            a=nums[i]+nums[L]+nums[R]
            if (a==target):
                return target
            elif(abs(a-target)<abs(res-target)):
                res=a
            elif(a<target):
                L+=1
            else:
                R-=1
    return res
print(threeSumClosest([1,2,8,5,9,2],2))

在这里插入图片描述

💦游玩总结

The stage extends as far as the heart goes~加油!❤️❤️❤️

**🏅今天是我打卡的第十四天,希望每天都能见到最棒的你🏅**

📢📢📢最后的福利

🍋🍋🍋最后一点小福利带给大家:如果想快速上手python的小伙伴们,这个详细整理PPT可以迅速帮助大家打牢python基础,需要的小伙伴们可以下载一下 Python入门基础教程全套+小白速成+学不会来找我! 🍻🍻🍻
还有自制表白神器,需要自取:
Python表白神器,源码+解析+各种完美配置+浪漫新颖 🍻🍻🍻
在这里插入图片描述

🌲🌲🌲 好啦,这就是今天要分享给大家的全部内容了
❤️❤️❤️如果你喜欢的话,就不要吝惜你的一键三连了~在这里插入图片描述

文章来源: xuyipeng.blog.csdn.net,作者:是Dream呀,版权归原作者所有,如需转载,请联系作者。

原文链接:xuyipeng.blog.csdn.net/article/details/120075042

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。