搬砖
Sino1996
Talk is cheap, show me the code
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
10.15:信息检索之学习排序(LTR)
放个连接引用一篇文章,关于LTR的,最近在入门搜索相关知识转载 2019-10-15 17:07:31 · 553 阅读 · 0 评论 -
6.20笔记
牛客:二叉树中和为某一值的路径,思路就是递归,每次分别向左和向右递归,当递归到叶子节点并且路径和等于给定参数,加入res,每次递归的参数为当前节点的左边或右边的孩子节点,参数值改为当前值-根的val值。...原创 2019-06-20 23:43:32 · 281 阅读 · 0 评论 -
6.16笔记
438.找到字符串中所有字母:用两个字典记录每个字母出现的次数。其中一个记录和另一个长度相等的数量的元素,如果相等则存入当前最前的下标,否则就继续向字典添加元素,注意判断当字典中index对应的value为0时pop。441.排列硬币:简单的遍历,每次当n>=i时,n=n-i,i+=1,知道n<i时,return i-1.447.回旋镖的数量:假设当前同一距离的数量为 n, 回旋...原创 2019-06-16 15:28:02 · 144 阅读 · 0 评论 -
6.10笔记
晚上牛客刷3道有关链表的题目(倒数第K个数和反转链表的第一个数),当做复习吧,思路前面都有做过,不记录了。(今天论文终于投出去了,希望顺利吧)...原创 2019-06-10 23:57:59 · 103 阅读 · 0 评论 -
6.15笔记
437.路径总和:https://blog.youkuaiyun.com/qq_17550379/article/details/82284240 总的思路就是利用字典记录前面的数值,要找sum=8的路径时,回头看前面路径和为当(前路径累加和-sum)为Key的value。...原创 2019-06-15 19:57:37 · 120 阅读 · 0 评论 -
6.19笔记
492.构造举矩形:可以利用math.sqrt先找到平方中值,在逐渐向前遍历,如果area%i==0,返回。496.下一个更大元素:双层循环,现在短的数组里面进行取值,之后找到长数组中改元素所对应得下标,从改下标逐渐向后遍历,当找打比该元素大的值时:添加该值并break,否则托没找到添加-1,另外需判断当该元素所对应得下标为长数组最后一位时,直接添加-1。...原创 2019-06-19 22:02:52 · 140 阅读 · 0 评论 -
6.9笔记
这两天忙着改论文,白天来不及刷题,晚上在牛客又刷了几道,题目不难思路就不记录了,主要每天撸代码和签到不能断。原创 2019-06-09 23:47:39 · 113 阅读 · 0 评论 -
6.14笔记
python:zfill(10)在前面补0操作,例如10就是补到第10位。415.字符串相加:补0之后逐个字符元素转换int相加,取余加入res,取整保留进行下一次运算。187.重复DNA:用字典,每10个元素当左一个key,遍历列表如果存在当前key,value加1,value == 2时加入结果res。...原创 2019-06-14 16:07:28 · 120 阅读 · 0 评论 -
6.8笔记
今天忙着改论文,白天没有刷题,晚上在牛客刷了两道。1.反向存储链表,python可以用insert(index,value)2.根据前序和中序建输,每次找根,然后分别递归左子树和右子树,只剩一个节点是放回当前值。大致复习一下吧,这两道以前都做过。...原创 2019-06-08 23:58:16 · 162 阅读 · 0 评论 -
6.2笔记
18.四数之和:虑将 n 数之和降低为一个数加上 n-1 数之和的问题,依次降低 ,最低是二数之和的问题 ,二数之和问题容易解决。通过新的 target = target - nums[i] 进行参数修改再次调用 nsum()方法即递归 。234.回文链表:快慢指针,用res存储慢指针遍历数字的反转,当快指针走到尾部时,判断res.val和slow.val的值是否相等。...原创 2019-06-02 13:03:09 · 96 阅读 · 0 评论 -
6.7笔记
python:collections.Counter([‘a’, ‘b’, ‘c’, ‘a’, ‘b’, ‘b’])输出:Counter({‘b’:3, ‘a’: 2, ‘c’: 1})350.两个数组的交集2:在1的基础上统计每个元素出现的次数,最后的结果为去重交集的每个元素乘以出现次数较小的数。367.有效的完全平方数:利用 1+3+5+7+9+…+(2n-1)=n^2,即完全平方数肯...原创 2019-06-07 11:09:26 · 136 阅读 · 0 评论 -
6.1笔记
237.删除链表中的结点:node这个节点就是需要删除的节点,把 node下一节点复制到node,把下一节点跳过。242.有效字母的异位词:用两个字典分别存储两个字符串中每个字母出现的次数,最后判断两个字典是否相等。263.丑数:只包含质因子2,3,5的正整数。...原创 2019-06-01 18:21:28 · 154 阅读 · 0 评论 -
6.13笔记
python:bin() 返回一个整数 int 或者长整数 long int 的二进制表示。、>>>bin(10) ‘0b1010’ >>> bin(20) ‘0b10100’401.二进制手表:利bin()求出对应二进制并统计每个数字二进制中1的个数,然后逐个遍历。404.左叶子总数:递归...原创 2019-06-13 10:16:02 · 121 阅读 · 0 评论 -
5.29笔记
38.报数:初始化一个字符串s = “1”,外层循环遍历n-1次,用s存储上一次循环获得的字符串,内层循环遍历s,用count进行计数,累计当前数值相等的个数,直到不相等就把str(count)和当前数值保存至结果数组,更换当前数字,count置为1.67.二进制求和:先对两个字符串中长度较短的前面进行补0,使得两个字符串长度相等,从后往前按位相加,设置一个标志为flag判断当前是否有进位,当前...原创 2019-05-29 10:50:05 · 201 阅读 · 0 评论 -
6.4笔记
290.单词规律:用过split对str按空格分割,后面就类似查找字典操作,如果当前字典没有当前遍历元素,把当前元素添加入字典,若存在则判断对用的值域是否相等,相等则继续,不相等返回FALSE,知道循环结束没有返回FALSE,则返回TURE。292.Nim游戏:巴什博弈:当n % (m+1) != 0 时,先手的人总是能赢,n表示总石子个数,m表示每次最多拿的个数。...原创 2019-06-04 20:33:49 · 127 阅读 · 0 评论 -
6.11笔记
131.分割回文串:环遍历字符串,检查substr(0,i)是否是回文。如果是,则在子字符串的其余部分递归调用dfs():substr(i + 1,length)。到目前为止,将当前的回文分区保留在dfs()的’path’参数中。到达字符串末尾时,在结果中添加当前分区。137. 只出现一次的数字 II:https://blog.youkuaiyun.com/jiangxiewei/article/detai...原创 2019-06-11 16:35:44 · 122 阅读 · 0 评论 -
6.17笔记
453.最小移动次数使数组元素相等:n-1个数同时加一,就好比每次有一个数自身减一,因为只能做减法,所以数组最后的数只能是最小值。这样的话每个元素减去最小值求其和就是答案。445.分发饼干:先对两个数组排序,在同时遍历如果饼干容量大于孩子食量,则全部对应i,j,res加一,否则只有饼干容量对应下标j加一,最后返回res459.重复的子字符串:如果之前就不存在重复的字符串,那么复制添加以后,把首...原创 2019-06-17 11:13:54 · 225 阅读 · 0 评论 -
6.30笔记
599.两个列表的最小索引和:使用字典记录{共同喜欢的商店:索引和},返回索引和并列最小的商店名。606.根据二叉树创建字符串:当某个节点左右两个子节点均不为空时,应加上(),并在其中加上子节点的值;而当某个节点只存在左子节点时,则可以省略右子节点对应的(), 当某个节点只存在右子节点时,则不能省略其左子节点对应的(),上个fork的代码。class Solution: def tr...原创 2019-06-30 21:32:11 · 138 阅读 · 0 评论 -
6.29笔记
594.最长和谐子序列:利用collections统计所有元素出现的次数,按照得到的字典逐个遍历,如果当前key+1或key-1的值在字典里,帮当前key值得value与key+1或key-1得value求和,之后与存储当前最长序列得res取max。598.范围求和,就是返回ops中0位置最小的值乘以1位置最小的值。200.岛屿数量:我们可以把每一个陆地点当作树根,用 BFS 搜索四周的陆地并...原创 2019-06-29 10:52:04 · 117 阅读 · 0 评论 -
6.28笔记
575.分糖果:注意利用set函数。589.N叉树的前序遍历:跟二叉树的前序遍历一样,只是孩子用children换。590.N叉树的后序遍历:用栈存储 ‘根右左’顺序的前序遍历,并一个一个弹出,最后返回弹出结果的翻转。...原创 2019-06-28 15:32:20 · 139 阅读 · 0 评论 -
7.3笔记
今天开始每天复习两道以前的题目+一道新的题目。687.最长同值路径:对于任意一个节点, 如果最长同值路径包含该节点, 那么只可能是两种情况:其左右子树中加上该节点后所构成的同值路径中较长的那个继续向父节点回溯构成最长同值路径左右子树加上该节点都在最长同值路径中, 构成了最终的最长同值路径需要注意因为要求同值, 所以在判断左右子树能构成的同值路径时要加入当前节点的值作为判断依据cla...原创 2019-07-03 11:06:23 · 229 阅读 · 0 评论 -
6.27笔记
563.二叉树的坡度:二叉树的后序遍历572.另一个树的子树:递归树s的每一个结点,判断以该结点为根的树和树t是否相等,如果相等,为true,如果不等为false三个提的方法都是递归...原创 2019-06-27 15:51:18 · 117 阅读 · 0 评论 -
7.2笔记
669.修剪二叉搜索树(递归):class Solution: def trimBST(self, root: TreeNode, L: int, R: int) -> TreeNode: if not root: return None 、 if root.val < L: return self.tri...原创 2019-07-02 19:17:40 · 124 阅读 · 0 评论 -
6.24笔记
506.相对名次:先对原始列表进行递减排序,之后利用字典存储每个元素的对应名字,最后遍历原始列表逐个赋值。507.完美数:先得到所求数的平方根,设一个初始值s为2,当s小于平方根,判断s是不是所求书得因子,如果是则把两个因子加入sum,最后判断sum与num是否相等。注意num==1要返回False。...原创 2019-06-24 12:41:18 · 117 阅读 · 0 评论 -
6.23笔记
501.二叉搜索树中的众数:用栈按层遍历二叉树,用字典存储每个元素出现的次数,最后max出字典中value值最大的数,遍历字典得到与最大次数相等的元素。504.base7:取数字的7进制,简单的取余取整,每次取余加入字符串s,取整下一次遍历,由于存在负数,处理前先abs(num),返回时如果原为负数则加负号。...原创 2019-06-23 19:19:13 · 176 阅读 · 0 评论 -
6.22笔记
500.键盘行:将每一行键盘字符和对应的行数放入Map,对于输入的word,比较每个字符是否位于同一行,不是的话返回原创 2019-06-22 21:35:34 · 213 阅读 · 0 评论 -
6.18笔记
Island Perimeter:每个岛屿格子先默认加上四条边,然后检查其左面和上面是否有岛屿格子,有的话分别减去两条边。原创 2019-06-18 16:04:36 · 114 阅读 · 0 评论 -
7.1笔记
637.二叉树的层平均值:直接上代码把,挺简单的class Solution: def averageOfLevels(self, root: TreeNode) -> List[float]: if not root: return 0 stack = [root] tep = [root...原创 2019-07-01 16:56:49 · 121 阅读 · 0 评论 -
6.21笔记
复习两道前面的题目,不记录了,签个到。原创 2019-06-21 21:56:21 · 127 阅读 · 0 评论 -
6.12笔记
387.字符串中第一个唯一字符:首先可以用collections.counter()计算每个出现次数,之后查找value==1 的key,最后用find()找到元素下标。第二种方式不用库函数,从后向前遍历,每次查看元素是否出现在字典,如果没有,把该元素先添加到列表p,如果有,怕列表p中该元素remove掉,最后返回p[-1]389.找不同:比较简单的一道题,sorted两个字符串,逐个遍历,相等...原创 2019-06-12 10:46:43 · 143 阅读 · 0 评论 -
6.25笔记
538.二叉树转化为累加树:二叉搜索树先找到树得最右边,并用栈stack存储路径上所有元素,当右边找不到结点,累加当前root元素,并向左子树遍历。注意这里要初始化一个函数存储self.sum = 0。541.反转字符串2:通过一个新空字符串S存储结果,每次切片2k个元素,前k元素利用[::-1]翻转,另外剩余元素小于2k,根据剩余元素个数进行不同得翻转。...原创 2019-06-25 15:53:58 · 115 阅读 · 0 评论 -
5.28笔记
14.最长公共前缀:由于求最长公共前缀,所以取哪一个元素进行比较都可以,这里取strs里的第一元素进行比较,外层循环通过enumerate取出第一个元素下标和相应字母,内层循环对整个列表逐个遍历,只有外层循环的下标小于当前元素的长度并且对应的字母相等才符合条件,继续continue,每次内层循环结束没有返回则表示该位置所有元素的字母都相等,加到最后结果result(result初始化为" ")。...原创 2019-05-28 21:52:41 · 98 阅读 · 0 评论 -
5.31笔记
205.同构字符串:用字典记录每个s[i]对应的t[i],若发现新的s[i],而对应t[i]出现过则返回False,没出现过则把新的一对(s[i]:t[i])加入字典,若s[i]出现过,则判断对应的t[i]是狗相等。206.反转链表:pre = None ,cur = headwhile cur:pre,pre.next,cur= cur,pre,cur.next231.2的幂:用n&...原创 2019-05-31 11:14:53 · 176 阅读 · 0 评论 -
5.9笔记
先复习了一下二叉搜索树的性质,在二叉查找树中:(01) 若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值;(02) 任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值;(03) 任意节点的左、右子树也分别为二叉查找树。(04) 没有键值相等的节点(no duplicate nodes)173 二叉搜索树迭代器:求出该二叉树的中序遍历即为从小到大排序好的数组...原创 2019-05-09 21:55:19 · 147 阅读 · 0 评论 -
5.19笔记
49.异位词分组:把26个字母通过26个素数一一对应存储,所以列表中元素对应位置乘积和相等的的为相同字母组成的单词,分到同一组。136.单个数:列表所有树进行异或,剩余的为单个的数。202.快乐数:把数组变成字符串形式逐个取平方求和。...原创 2019-05-19 17:23:59 · 121 阅读 · 0 评论 -
5.6笔记
107 二叉树的层序遍历2:与前面方法一致,最后返回的结果列表翻转即可。108 将有序数组转换为二叉搜索树:找中间结点利用递归来做。110 平衡二叉树:思路是递归,如果返回一个当前树是否是平衡二叉树的boolean类型的值,那么我只知道left和right这两棵树是否是平衡二叉树,无法得出left和right的高度差是否不大于1,自然也就无法得出root这棵树是否是平衡二叉树了。而如果我返回的...原创 2019-05-06 21:22:57 · 95 阅读 · 0 评论 -
5.13笔记
19 删除链表中倒数第n个节点:快慢指针,快指针先移动n次,之后快慢指针同时移动,当快指针移动到链表尾部时,慢指针即移动到了倒数第n个的前一个元素,low.next= low.next.next,最后返回head。21 合并两个有序链表:简单的遍历...原创 2019-05-13 21:09:12 · 114 阅读 · 0 评论 -
4.30笔记
1.leetcode 442:数组中重复的数据 由于数组中的元素是大于等于1小于等于n,并且重复元素只出现两次,可以把数组中元素看成索引,每次出现把对应的值乘以-1,再次出现若小于0直接添加输出数组。2.leetcode 448:找打数组中消失的数字 跟第一题类似,把数组中元素作为下标,取出对应的数值,若大于0变为负值,重新遍历数组,其中元素大于0的数值对应的下标+1则是确实的元素。3.lee...原创 2019-04-30 11:46:30 · 141 阅读 · 0 评论 -
5.5笔记
leetcode102 103 二叉树的层序遍历和锯齿形层遍历:初始化开始先添加根节点的值,之后建立一个空的列表,同于存储当前层的孩子结点并转给新的数组,第二题类似,只需要加一个判定,如果是奇数层就加入列表的翻转,不是就正常插入。...原创 2019-05-05 17:29:16 · 110 阅读 · 0 评论 -
5.8笔记
114.二叉树展开为链表:实质是求出二叉树的先序遍历,建立一个新的树,利用栈来完成。116.填充每个节点的下一个右侧节点指针:同样利用队列存储每一层的所有结点,再取出队列的第一个结点是,判断它是是否有左右孩子结点,有的话进入队列,中间嵌套一个for循环连接当前层next结点,循环之前需记录当前层的长度。117.方法与116相同,有些题目找到好的解法可解决同类的很多题。129.根到叶子节点数字...原创 2019-05-08 11:36:28 · 145 阅读 · 0 评论
分享