数据结构算法操作试题(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 链接 评论区~
- WCF后续之旅(4):WCF Extension Point 概览
- Asp.Net无刷新上传并裁剪头像
- 用泛型的IEqualityComparer<T>接口去重复项
- python与office(一)
- Asp.net 后台添加CSS、JS、Meta标签(帮助类)
- 分享一下cookies操作(增、删、改、查)小经验
- [Silverlight 4 RC]WebBrowserBrush概览
- 一个例子理解C#位移
- WCF后续之旅(3): WCF Service Mode Layer 的中枢—Dispatcher
- silverlight 2 Random 随机数解决方案
- 开发中巧用Enum枚举类型
- Jquery 事件冒泡
- Vue2的单元测试与调试技术
- silverlight beta 2 将在本周末发布.
- 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 数组属性和方法
- Flink教程-使用sql将流式数据写入文件系统
- flink教程-flink 1.11 集成zeppelin实现简易实时计算平台
- flink教程-详解flink 1.11 中的CDC (Change Data Capture)
- flink教程-基于flink 1.11 使 sql客户端支持执行sql文件
- flink教程-详解flink 1.11 中的JDBC Catalog
- flink教程-flink modules详解之使用hive函数
- 面试iOS 机会在自己手中
- Flink教程-将流式数据写入redis
- Flink教程-keyby 窗口数据倾斜的优化
- Flink源码分析之深度解读流式数据写入hive
- 浙大版《C语言程序设计(第3版)》题目集 习题10-1 判断满足条件的三位数
- 差分标记-HDU1556 Color the ball
- flink cep 案例之机架温度监控报警
- 详解flink 1.11中的新部署模式-Application模式
- 浙大版《C语言程序设计(第3版)》题目集 习题10-2 递归求阶乘和