leetcode日记

文章讨论了两种常见的算法优化策略。一是使用哈希表解决twosum问题,达到O(n)的时间复杂度,避免暴力算法的O(n^2)。二是双指针技巧在LongestPalindromicSubstring问题中的应用,以及在寻找数组中目标和的子数组时的优化。还提到了Python中乘法运算符(*)的效率优于指数运算符(**)。此外,利用双指针检测链表环结构的Floyd算法也被提及。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.two sum

解法有暴力算法和哈希冲突算法

暴力算法两次循环 o(n^2)  里面一次仍需要循环但初始值为外面循环+1

哈希冲突 o(n)  里面一次是o(1) 直接查哈希   containskey     

为什么哈希是o(1) 因为哈希存储相当于存在一个数组   哈希冲突解决存放数据的方法 哈希函数找出值得下标  可能是5 可能是6次甚至更多  但是远小于n 所以o(1)级别

2.Longest Palindromic Substring

暴力法 不应该由最左右两边开始,而应该从内部最里面开始+1 -1

Leetcode 题解 - 双指针 | CS-Notes

双指针篇

1..双指针 结果唯一时 相加值比结果大时 ed移动而st不会移动  

- LeetCode

while(st<ed):
            res=numbers[st]+numbers[ed]
            if(res>target):
                ed-=1
            elif(res<target):
                st+=1
            else:
                return [st+1,ed+1]

st移动时结果多值时候出现

2..关于x*x与x**2的问题

Why v*v is faster than v**2 in python - Stack Overflow

 

效果一样性能竟然差了3倍?! 

**2要回调cpu的运算指令,x*x只需要python软件层面上运算

3..判断存在时,用set比list快

4.- LeetCode

判断一个链是否在某处开始循环

思想:

1.无限循环 无法简单写出来

2.一开始打算先存数据进list 同时比较next是否在list 有的话 判断next存在时,链在这里跟next这里是否相等  但是由于会存在大量数值相等数据 所以不能使用

3.构造一个双齿轮结构,一个转一格,另一个转两格,总会出现两个齿轮重合的情况 不然会next之后none也能直接判断不存在环结构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值