题意是给定一个字符串,返回不含重复字符的最长串长度 例如对于abcabcbb,返回3 用ansl记录当前选定串的最左字符位置,用ansr记录当前选定串的最右字符位置 我的做法是用map记录当前选定串中字符的位置,那么当遇到一个新的字符ch时,如果map[ch]的值不为0,说明当前选定串有ch,那就更新当前选定串 ...
是二叉搜索树求LCA的加强版,这里是对普通的二叉树给定两点p, q求LCA 最初的想法是对于树中每个节点判断两个点p, q是否在它的同一侧,结果超时了 然后就想到在判断两点p, q是否在某个节点同一侧时存在大量的重复性工作 因此想到用深搜找到从根节点到p, q的路径,再找到路径从下到上的第一个公共点 这样就容易做...
题意是对一颗给定的二叉搜索树,寻找两个节点的最短公共祖先,ps:一个节点的最短公共祖先可以是它自己 这里要考虑到二叉搜索树的性质:每个根节点左侧所有节点的值要比根节点值小,右侧所有节点的值要比根节点值大 所以我们应用这个性质递归操作即可: 1、若两个节点的值都比当前根节点值小,向左侧递归 2、若两个节点的值都比...
题意是删除单链表的某个节点,确实是基本没做过链表的题,导致一直在想怎么把待删除节点的上一个节点与下一个节点连接起来;很明显这么做很困难,因为单链表从当前节点找上一节点确实很困难。 正确的做法是令当前节点等于下一节点,然后把下一节点删除即可。 代码如下: 123456789101112131415161718192...
题目的意思是给定一个数组,让你输出另一个数组,这个数组中每个元素的值为给定数组中除该位置外剩余所有元素的乘积。 例如输入[1,2,3,4],输出[24,12,8,6] 要求:不能使用除法,且时间复杂度在O(n)内 其实题目中说明了不能使用除法就比较容易想到把一个数左右两侧的所有数乘起来 但是题目处理要两次处理,从...
学习php的过程中接触了正则表达式,想到自己封存了一个月之久的正则表达式教程也该重见天日了! 教程地址:正则表达式30分钟入门教程 版权声明:本文是在学习上述教程过程中编写;如有雷同,纯属学习! 元字符 1、\b是正则表达式规定的一个元字符,代表着单词的开头或结尾;所以我们可以通过\bhello\b来匹配一个h...
早在做java EE项目的时候就意识到分页并不容易做,甚至项目有了分页功能就有了一个很大的卖点,通过今天下午的学习,理解并掌握了运用php+mysql实现分页的方法先附上分页效果: 首先要明确的一点是分页功能的实现主要借助于mysql的select limit语句; 这里的limit的功能就在于限定显示的记录数...
在ubuntu、windows双系统下,不能从ubuntu访问windows系统下的磁盘,导致这个问题的原因一般都是上次系统没有正常关闭导致 要想修复这个问题其实很简单,这里提供两种解决方法: 1、以正常方式重启。。。当然我并不推荐这种方法 2、使用ntfsfix命令修复windows系统下磁盘,使用方法为su...
夜晚睡不着,索性起来发篇博客,把心里的想说的话说个干净最近一直在为保研的事忧心,特别是前天晚上又听了软件三班的学长学姐交流会,感觉像盈神这样的大牛都在保研这条路上差点出意外,我又怎么保证我能顺利保研呢? 目前就报了中科院计算所和软件所,接下来想报北航、北邮,但是这两所学校都没出夏令营,不知道今年会不会就不出了,因...
题意是有一个等式:x^2+s(x, m)*x-n = 0 s(x, m)表示把x写成m进制时,每个位数相加的和 找到满足条件的最小正整数x,如果不存在,输出-1 很容易想到把等式转换为x+s(x, m) = n/x 所以可以知道n是x的整数倍,且n>x*x 但仅仅是这样时间复杂度是降不下来的 做比赛的时候一...