数据结构算法操作试题(C++/Python)——最接近的三数之和
时间:2022-07-24
本文章向大家介绍数据结构算法操作试题(C++/Python)——最接近的三数之和,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1. 题目
leetcode 链接:https://leetcode-cn.com/problems/3sum-closest/comments/
2. 解答
python : 108ms, 13MB, 92%
class Solution:
def threeSumClosest(self, nums: List[int], target: int) -> int:
nums.sort()
if sum(nums[-3:]) <= target:
return sum(nums[-3:])
if sum(nums[:3]) >= target:
return sum(nums[:3])
pre_flag = "flag"
flag = pre_sum_val = sum_val = first_flag = 0
for i in range(len(nums) - 2):
start = i + 1
end = len(nums) - 1
while start < end:
sum_val = nums[start] + nums[end] + nums[i]
if sum_val > target:
end -= 1
flag = 0
elif sum_val < target:
start += 1
flag = 1
else:
return target
if pre_flag != flag and pre_flag != "flag":
if not first_flag:
minDis = self.judgeAbs(sum_val, pre_sum_val, target)
first_flag = 1
minDis = self.judgeAbs(self.judgeAbs(sum_val, pre_sum_val, target), minDis, target)
pre_flag = "flag"
else:
pre_flag = flag
pre_sum_val = sum_val
return minDis
def judgeAbs(self, sum_1, sum_2, target):
return sum_2 if abs(sum_1 - target) >= abs(sum_2 - target) else sum_1
其他方法看 leetcode 链接 评论区~
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- PAT (Advanced Level) Practice 1039 Course List for Student (25分)
- Codeforces Round #615 (Div. 3) E. Obtain a Permutation
- 数据结构实验完结撒花之内部排序比较
- Codeforces Round #615 (Div. 3) F. Three Paths on a Tree
- Matlab 内联函数及匿名函数
- 渗透测试 | 内网信息收集
- 浅谈 CSS 的用法
- PAT (Advanced Level) Practice 1049 Counting Ones (30分)
- 用递归的思想实现二叉树前、中、后序迭代遍历
- 利用WAF进行拒绝服务攻击
- leetcode树之从根到叶的二进制数之和
- Vue3 模板编译原理
- leetcode树之从上到下打印二叉树
- leetcode树之二叉搜索树的最近公共祖先
- leetcode树之从翻转二叉树