algorithm - 什么数字加起来k?
问题描述
我不知道该怎么做。给定一个数字列表和一个数字 k,返回列表中所有加起来为 k 的数字对。只通过列表一次。
例如,给定 [10, 15, 3, 7] 和 17 的 k。程序应返回 10 + 7。
您如何在只浏览一次清单的情况下订购和退回每一双。
解决方案
使用一组来跟踪您所看到的内容。运行时间 O(N),空间:O(N)
def twoAddToK(nums, k):
seen = set()
N = len(nums)
for i in range(N):
if k - nums[i] in seen:
return True
seen.add(nums[i])
return False
推荐阅读
- php - PHP preg_replace 将所有 www 替换为 http://www
- bigcommerce - 用于订单的 BigCommerce 店面 API
- javascript - 从 html 中的文本文件中读取图像源路径
- docker - 在 Docker 映像之间切换
- java - 在使用 Failsafe + Cucumber Parallel 插件时无法使用诸如 @BeforeClass @AfterClass 之类的 Junit 或 TestNG 注释
- typescript - 对具有 DI 依赖项的类的玩笑
- android - 如何将条件应用于关系,或者如何正确处理 Room 中带有 WHERE 子句的 JOIN 查询?
- java - 运行jar文件获取java.lang.SecurityException:禁止的包名:java.sql
- r - 为什么我在 mlogit() 中收到错误,但当我为单个特定变量添加 +0 以不拦截时却没有?
- java - 如何确保 tap 功能在 appium for android 应用程序中有效?