2019年5月13日
摘要: 这道题一眼看过去,就会想到判断headA.next是否等于headB.next,若等于,则可以输出headA.next。 但是,问题在于两者有可能长度不一致,这就导致可能两者有相交点,但在不断.next后,就会错过那个相交点。 这个时候就可以将两者的长度变为一样,再比较.next。 还有,就是要定义 阅读全文
posted @ 2019-05-13 10:27 imimtks 阅读(111) 评论(0) 推荐(0) 编辑
  2019年5月10日
摘要: 对于ListNode链表而言,可以使用next来向后移动,这道题就可以想到判断最后一位是否有next,有则是为true,无则为false, 这道题也可以定义两个指针,一个是另一个的next,判断若不为空前提下,是否两者相同,若相同则返回true。 对于head == null或者head.next 阅读全文
posted @ 2019-05-10 11:35 imimtks 阅读(67) 评论(0) 推荐(0) 编辑
  2019年5月9日
摘要: 1、将test中date分解成多列 pd.concat([test, test['date'].str.split('-', expand=True)], axis=1) 此时的test增加了三列,但是,加的列没有名称,这时,修改列名。 修改date名为5 test.rename(columns={ 阅读全文
posted @ 2019-05-09 20:51 imimtks 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 这道题最关键就是,可以利用异或,只有一个数出现一次,其他都会出现两次。 那么两个相同的数异或就相当于清0了,那么最后只剩下出现一次的数了。 阅读全文
posted @ 2019-05-09 10:05 imimtks 阅读(90) 评论(0) 推荐(0) 编辑
  2019年5月8日
摘要: s = s.replaceAll("\\pP","");//去除标点,字符串中只剩数字,字母,汉字 s = s.replace(" ","");//去除字符串中空格 阅读全文
posted @ 2019-05-08 15:29 imimtks 阅读(91) 评论(0) 推荐(0) 编辑
  2019年5月7日
摘要: 其实只需要大于0的买卖,都加入max中,就是最大的交易. 最关键就是为何可以直接前后两个进行判断,不用跨数字。 比如:[7,1,5,1,3,6,4],该最大的为9,就是5-1和6-1,后者就跨数字了,但是,看到其中3-1是大于0加到了max中,6-3也大于0加到了max中, 那么,相当于6-1就已经 阅读全文
posted @ 2019-05-07 14:24 imimtks 阅读(97) 评论(0) 推荐(0) 编辑
  2019年5月6日
摘要: 看此题,就感觉很简单,就是前后之差最大,用后面的值减前面值。 缺点就是运算用时过大。 阅读全文
posted @ 2019-05-06 09:46 imimtks 阅读(56) 评论(0) 推荐(0) 编辑
  2019年5月5日
摘要: 根据前面的启发,可以知道,只需要输出本行,我们之前定义了两个List,一个为上一行,一个为本行,可以直接输出本行的。 假如,在第一个for循环中为rowIndex,这时,li是上一行的值,l中是本行的值,但是,再return l,会报错误。 就变成了,多算一步,输出li。 缺点就在于计算时间过长。 阅读全文
posted @ 2019-05-05 11:17 imimtks 阅读(61) 评论(0) 推荐(0) 编辑
  2019年5月4日
摘要: 首先,这个杨辉三角用C语言很好写,关键就在于明白,第一个与最后一个永远是1,同时,第三行开始,中间的数就是上方两个相加。 a[ i ][ j ] = a[ i - 1 ][ j - 1 ]+a[ i - 1 ][ j ] 对于JAVA 用ArrayList<>定义,则可以使用add,get进行操作, 阅读全文
posted @ 2019-05-04 11:16 imimtks 阅读(99) 评论(0) 推荐(0) 编辑
  2019年4月27日
摘要: 思路就是从根节点开始向下选节点,依次与sum比较大小,若小,则向下选左右节点其中一个,若大,则接下来判断是否是叶子节点,若是,则返回false 若不是,则上一步选另一节点,再将上述重新执行。 对于叶子节点比较可以: 接下来进行递归,看到sum可以每选一层,就将上一层选的节点数值减掉,这样可以计算方便 阅读全文
posted @ 2019-04-27 10:59 imimtks 阅读(68) 评论(0) 推荐(0) 编辑