首页 > 其他分享 >Study Plan For Algorithms - Part8

Study Plan For Algorithms - Part8

时间:2024-08-22 21:54:00浏览次数:6  
标签:right target nums Study current Algorithms Part8 sum left

1. 三数之和
题目链接:https://leetcode.cn/problems/3sum/
给定一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != j、i != k 且 j != k ,同时还满足 nums[i] + nums[j] + nums[k] == 0 。返回所有和为 0 且不重复的三元组。

class Solution:
    def threeSum(self, nums: List[int]) -> List[List[int]]:
        nums.sort()
        res = []
        for i in range(len(nums) - 2):
            if i > 0 and nums[i] == nums[i - 1]:
                continue
            left = i + 1
            right = len(nums) - 1
            while left < right:
                total = nums[i] + nums[left] + nums[right]
                if total == 0:
                    res.append([nums[i], nums[left], nums[right]])
                    while left < right and nums[left] == nums[left + 1]:
                        left += 1
                    while left < right and nums[right] == nums[right - 1]:
                        right -= 1
                    left += 1
                    right -= 1
                elif total < 0:
                    left += 1
                else:
                    right -= 1
        return res

2. 最接近的三数之和
题目链接:https://leetcode.cn/problems/3sum-closest/
给定一个长度为 n 的整数数组 nums 和 一个目标值 target。请从 nums 中选出三个整数,使它们的和与 target 最接近。
返回这三个数的和。

class Solution:
    def threeSumClosest(self, nums: List[int], target: int) -> int:
        nums.sort()
        closest_sum = nums[0] + nums[1] + nums[2]
        for i in range(len(nums) - 2):
            left = i + 1
            right = len(nums) - 1
            while left < right:
                current_sum = nums[i] + nums[left] + nums[right]
                if abs(current_sum - target) < abs(closest_sum - target):
                    closest_sum = current_sum
                if current_sum < target:
                    left += 1
                elif current_sum > target:
                    right -= 1
                else:
                    return target
        return closest_sum     

标签:right,target,nums,Study,current,Algorithms,Part8,sum,left
From: https://www.cnblogs.com/stephenxiong001/p/18374833

相关文章

  • A Comparative Study of AI-Generated (GPT-4) and Human-crafted MCQs in Programmin
    文章目录题目摘要引言相关工作数据集MCQ生成提示实验设计结果讨论对教学实践的启示有效性的局限性和威胁结论和未来工作题目编程教育中人工智能生成的(GPT-4)和人类编写的MCQ的比较研究论文地址:https://dl.acm.org/doi/10.1145/3636243.3636256摘要    ......
  • Study Plan For Algorithms - Part7
    1.罗马数字转整数题目链接:https://leetcode.cn/problems/roman-to-integer/罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符数值I1V5X10L50C100D500M1000通常情况下,罗马数字中小的数字在大的数字的右边。但也存在六种特例:I可以放在......
  • [PHP GD Study]我的世界皮肤转迷你世界
    涉及图片旋转、放大、复制目前仅实现了头部的复制准备工作:迷你世界皮肤底图(命名为miniw.png):我的世界皮肤:源代码:⚠AI生成<?php//设置上传文件的目标目录$target_dir="uploads/";//创建目标目录如果不存在if(!file_exists($target_dir)){mkdir($target_di......
  • 【课后作业】Atstudy项目实训
    一、项目介绍atstudy项目是一款在线教学管理系统,用于支持在线班的教学。结合该项目开展项目实训,将系统测试流程、web测试技术、web测试工具、移动app测试技术、移动app测试工具等之前学习的内容在实训中进行消化和掌握,帮助学员积累完整的项目经验。整个项目实训会按照标......
  • CHC5223 Data Structures and Algorithms
    CHC5223DataStructuresandAlgorithms2023-2024-21of6AssignmentValue100%ofCourseworkResitIndividualworkBackgroundThesubwaysystemofacityisanetworkofundergroundorelevatedtrainsthatproviderapidtransitforpassengerswithint......
  • 四十、【人工智能】【机器学习】- 梯度下降(Gradient Descent Algorithms)算法模型
     系列文章目录第一章【机器学习】初识机器学习第二章【机器学习】【监督学习】-逻辑回归算法(LogisticRegression)第三章【机器学习】【监督学习】-支持向量机(SVM)第四章【机器学习】【监督学习】-K-近邻算法(K-NN)第五章【机器学习】【监督学习】-决策树(......
  • Study Plan For Algorithms - Part5
    1.回文数题目链接:https://leetcode.cn/problems/palindrome-number/给定一个整数x,如果x是一个回文整数,返回true;否则,返回false。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。classSolution:defisPalindrome(self,x:int)->bool:str_x......
  • Study Plan For Algorithms - Part4
    1.整数反转题目链接:https://leetcode.cn/problems/reverse-integer/给定一个32位的有符号整数x,返回将x中的数字部分反转后的结果。如果反转后整数超过32位的有符号整数的范围[−2^31,2^31−1],就返回0。classSolution:defreverse(self,x:int)->int:......
  • Study Plan For Algorithms - Part3
    1.最长回文子串题目链接:https://leetcode.cn/problems/longest-palindromic-substringm/给定一个字符串s,找到s中最长的回文子串classSolution:deflongestPalindrome(self,s:str)->str:defexpand_around_center(left,right):whileleft......
  • Study Plan For Algorithms - Part2
    1.无重复字符的最长子串题目链接:https://leetcode.cn/problems/longest-substring-without-repeating-characters/给定一个字符串s,请找出其中不含有重复字符的最长子串的长度。classSolution:deflengthOfLongestSubstring(self,s:str)->int:char_dic......