![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
刷题有感
真老混子了
这个作者很懒,什么都没留下…
展开
-
leetcode-93. 复原IP地址
题目给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。有效的 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 ‘.’ 分隔。例如:“0.1.2.201” 和 “192.168.1.1” 是 有效的 IP 地址,但是 “0.011.255.245”、“192.168.1.312” 和 “192.168@1.1” 是 无效的 IP 地址。示例 1:输入:s = "25525511135"输出:["255.255.11.135"原创 2020-09-25 10:56:32 · 316 阅读 · 0 评论 -
最长子序列长度的维护
最长子序列长度的维护之前动规也碰到过这个方法,但是自己总是也想不到比如[1,5,6,3,8]一开始是1,5,6之后来了3, 看3的插入位置是第二个,把第二个修改为31,3,6之后是8,发现插入在最后一个,加在后面1,3,6,8如果还有就以此类推至于为什么这么做,可以这么理解,因为这个被替换掉的值不会比新的值更有助于找到更长的子序列比如这里的5被替换成了3,当这个序列中的值被更新地越来越小的时候,就更可能被加长。这个方法是对每一个点都记录最长子序列长度方法的一个优化。...原创 2020-09-24 16:49:54 · 58 阅读 · 0 评论 -
Hash set的另外一个思路
Hash set的另外一个思路当看到题目中出现,两数之和或者说是否出现第二次的时候,我们往往会想到hashset,但是是否真的需要用到hashset还是需要看情况。比如二数之和,我们需要记录每个数的位置,所以hashset是需要的但是比如字符串中是否出现第二次的问题,是需要记录True或者是False,可以用 0 1 来表示,而用0 1表示则又可以理解为数字的位了,比如字符是0-25,则只需要 26bit 即可.class Solution: def isUnique(self, astr:原创 2020-09-17 17:37:19 · 77 阅读 · 0 评论 -
2020-09-17
无加减乘除号的加法显然能想到位运算,原理类似于组原里的一位加法器,将a+b转换为每一位的位之和( n )+ 进位位( c )而n可以表示为两位之异或c可以表示为两位之按位与, 再左移一位那n与c的相加是怎么避开+号的呢,也是同样用n+c的方式,只不过加数从a,b 换成了n, c(禁止套娃),这个套娃结束的标志就是进位位为0 的时候。#python3while c: n, c = n^c, n&c<<1当然最后如果有负数,注意补码问题。...原创 2020-09-17 15:46:30 · 55 阅读 · 0 评论 -
单调栈和单调队列
单调栈和单调队列最近又在重新刷题,又看到了单调栈和单调队列的题目,发现当时也就是背一背就过了,没有领会到精髓,这次看了几位前辈写的心得,感觉理解深了一些。单调队列:传送门关键:用单调队列来解决问题,一般都是需要得到当前的某个范围内的最小值或最大值。就比如滑动窗口中的最大值问题(eg:[1,[1,2,3,4],5,6,7,7,9]), 如果入队的元素比队首的要大,则将队首的去掉直至满足递减条件,跟单调栈的一个区别在于队尾因为位置问题(划出窗口)需要更新。单调栈:传送门关键:需要找列表中某个元素原创 2020-09-17 10:10:13 · 81 阅读 · 0 评论