当前位置:网站首页>【LeetCode刷题】-数之和专题(待补充更多题目)
【LeetCode刷题】-数之和专题(待补充更多题目)
2022-08-05 02:07:00 【D2O】
LeetCode上关于“x数之和”的题目有如下几道
1 两数之和
1 两数之和
思路:hush map
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
hush=[]
for i in range(len(nums)):
temp=target-nums[i]
if temp in hush:
return [hush.index(temp),i]
else:
hush.append(nums[i])
附一个画蛇添足的错误解法:
题目要求返回的是 index ,就不适用这种一上来就 sort 的解法,
由于nums中有重复元素的存在,这种方法不出意外地报错了。
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
temp1=nums.copy()
nums.sort()
l,r=0,len(nums)-1
while l<r:
temp=nums[l]+nums[r]
if temp==target:
return [temp1.index(nums[l]),temp1.index(nums[r])]
elif temp<target:
l+=1
else:
r-=1

15 三数之和
15 三数之和
思路:sort 之后用双指针
三数之和题解(其中一种超时了)
18 四数之和
[18 四数之和](https://leetcode.cn/problems/4sum/
思路:还是sort 之后双指针
# TODO:加上代码
633 平方数之和
633 平方数之和
这个题挺简单的,确定检索范围是 range(1, int(math.sqrt(c) + 1)),
在这个范围内找两个数,使得它们的平方和是目标值,
接下来就是经典的两数和问题了。
Python 开方:math.sqrt(num)
解法1:双指针法
class Solution(object):
def judgeSquareSum(self, c):
if c == 0: return True
n=int(math.sqrt(c))
a,b=0,n
while a<=b:
temp=c-a**2-b**2
if temp ==0:
return True
elif temp>0:
a+=1
else:
b-=1
return False
解法2:暴力计算
注:因为只要b是自然数就符合题目要求,所以就不用辛辛苦苦地遍历list了,直接判断b是否是整数。
判断某数是否为整数:int(num)==num
class Solution(object):
def judgeSquareSum(self, c):
if c == 0: return True
for a in range(1, int(math.sqrt(c) + 1)):
b = c - a * a
if int(math.sqrt(b)) ** 2 == b:
return True
return False
关于双指针的一点思考
双指针的本质是什么?
移动的时候会不会剪掉正确答案?
边栏推荐
- Programmer's list of sheep counting when insomnia | Daily anecdote
- LPQ(局部相位量化)学习笔记
- Greenplum Database Fault Analysis - Can a Soft Connection Be Made to the Database Base Folder?
- “嘀哩哩,等灯等灯”,工厂安全生产的提示音
- MySQL3
- 为什么他们选择和AI恋爱?
- 【Endnote】Word插入自定义形式的Endnote文献格式
- 用@Mapper查询oracle的分区情况报错
- js中try...catch和finally的用法
- Jincang database KingbaseES V8 GIS data migration solution (3. Data migration based on ArcGIS platform to KES)
猜你喜欢

KingbaseES V8 GIS data migration solution (2. Introduction to the capabilities of Kingbase GIS)

Transfer Learning - Distant Domain Transfer Learning

Why is this problem reported when installing oracle11

Utilities 
释放技术创新引擎,英特尔携手生态合作伙伴推动智慧零售蓬勃发展

Opening - Open a new .NET modern application development experience

Hypervisor related knowledge points

“嘀哩哩,等灯等灯”,工厂安全生产的提示音

LPQ(局部相位量化)学习笔记

【Unity入门计划】2D游戏中遮挡问题的处理方法&伪透视
随机推荐
XMjs跨域问题解决
领域驱动设计——MDD
回顾51单片机
EBS uses virtual columns and hint hints to optimize sql case
Residential water problems
Fragment visibility judgment
进程在用户态和内核态的区别[独家解析]
英特尔 XDC 2022 精彩回顾:共建开放生态,释放“基建”潜能
为什么他们选择和AI恋爱?
[Machine Learning] 21-day Challenge Study Notes (2)
1349. Maximum number of students taking the exam Status Compression
Opencv - video frame skipping processing
第09章 性能分析工具的使用【2.索引及调优篇】【MySQL高级】
没有对象的程序员如何过七夕
SuperMap iDesktop.Net之布尔运算求交——修复含拓扑错误复杂模型
KingbaseES V8 GIS数据迁移方案(2. Kingbase GIS能力介绍)
(17) 51 MCU - AD/DA conversion
js中try...catch和finally的用法
Methods commonly used interface automation test framework postman tests
How to deal with your own shame