摘要:
题目: 解题思路: 本题很像是树的遍历,找出离根节点最远的叶子节点。但是与树不一样的是,节点之间存在回路。如图我是构造的一组测试数据。我的想法是从根节点开始,首先找出与根节点有直通的第一层节点并将这一层所有节点入栈,同时用一个数组保存根节点与每个节点的最短延时。 1. 首先为节点定义结构体 2.遍历 阅读全文
摘要:
解题思路:本题要求的是找出一个前一位不大于后一位的整数,并且这个整数不能大于输入的数。最直接的方法,是从输入数开始判断,依次减一,直到找到符合条件的数为止。更为简便的方法可以这样,从输入数的最低位开始依次和前一位比较,如果前一位大于后一位,那么前一位减1,后面所有位的值都置为9,直到遍历到最高位为止 阅读全文
摘要:
分析:本题要得出结果难度不大,但是会遇到Time Exceed Limited的错误,因此降低时间复杂度是关键。我的解题思路比较简单,首先为paris创建字典,找出所有与指定词有直接关系的近义词。例如paris 形成的字典如下: 接下来就是遍历words1和words2,遇到不相同词,直接根据key 阅读全文
摘要:
题目: 解题思路: 题目要求检查括号是否匹配,匹配的规则可以认为和小学数学四则运算里面括号的用法一样,即一个右括号必须对应一个左括号,有对应关系的右括号必须在左括号右边,等等等等。。。题目为了增加一点难度,引入了一个万能符号*,一个*号可以用作一个左括号,也可以用作一个右括号,或者一个空字符。 万变 阅读全文
摘要:
国庆中秋长假过完,又要开始上班啦。先刷个题目找找工作状态。 解题思路:本题属于简单级别,但是我还是拿出来分析。因为本题我们可以用广度遍历的算法解决,而广度遍历也是算法中非常重要的一种。步骤如下: 1.从输入的2D数组首元素开始遍历,如果值为0,继续下一个节点;否则,将这个节点入中间过程栈。 2.遍历 阅读全文
摘要:
解题思路:这个题目难度不大,第一眼看起来也许觉得有些繁琐,但是如果抽丝剥茧,将解题过程分解成以下几步,就会豁然开朗。 1.把所有奇数行的名字换成相邻的偶数行的名字。 2.把所有偶数行的名字换成相邻的奇数行的名字。 3.合并1和2的结果 4.如果总行数为奇数,最后一行的名字不用替换。修正SQL如下: 阅读全文
摘要:
很久没有做题了,今天写个简单难度的练练手感。 分析:这个题目的要求是判断回文,但是增加了一点难度,可以删掉至多一个字符。所以,我们可以从字符串的两头往中间进行每个字符的比较。先比较s[0]和s[len(s)-1],如果相同的话,低位+1,高位-1,直到找到两个字符不同为止。因为可以删除一个字符,所以 阅读全文
摘要:
这个题目比较直接的方法是把二叉树建立起来,然后从根节点开始依次遍历各个叶子节点。这个方案会比较麻烦,因为涉及到回溯等等。更为简便的方法是从叶子节点往根节点遍历,把每个叶子节点遍历到根节点的和累加就行。 1. 找出所有的叶子节点。这个比较简单,遍历nums数组的每个元素,假设元素的值是abc,那么只要 阅读全文
摘要:
这题的难度属于hard级别,但我觉得最多也就是一般难度。初看起来这题好像有点不知所措,但仔细分析却能发现其实条件很简单,只要满足以下任意三个条件即可: 1.id in (x,x+1,x+2) 的记录的people >= 100; 2.1.id in (x,x+1,x-1) 的记录的people >= 阅读全文
摘要:
ArrayList<Future> fl = new ArrayList<Future>(); 一开始,我以为 executorService.submit中先执行完的任务的返回结果集会存在fl的前面,但是经过测试发现,却并非如此。 测试代码: 执行后输入如下: 这表明,不管是哪个任务先完成,在返回 阅读全文