Week24 0828--0903

question 1:字符串统计

Week24 0828--0903_第1张图片

我的答案:

主要问题在统计连续的L,我用了一个标志位来记录连续的L

Week24 0828--0903_第2张图片

别人的做法:

更简单的做法是直接查找有没有字符串 'LLL'

Week24 0828--0903_第3张图片

question 2:字符串翻转 

Week24 0828--0903_第4张图片

答案:

Week24 0828--0903_第5张图片

question 3:修改一个数使得列表递增

给定一个列表,能不能只修改里面的一个数而使得整个列表递增

Week24 0828--0903_第6张图片

我的答案:错误

统计列表中的下降次数

Week24 0828--0903_第7张图片

别人的答案:

当发现前面的数比后面的数大的时候,有两种解决方法。第一种是将前面大的数改成不比后面的数大的数(那么这个数的最大值就是后面的数),第二种是将后面的数改成不比前面的数小的数(这个数的最小值是前面的数)

假如改第一个,就必须是可能值的最大值,这样才不会出现前面的数比改过后的数大。

假如改第二个,就必须取可能值的最小值,这样才不会使得这个改的数比后面的数大

所以只修改这么一次,再检查两种修改策略,就知道是否可行了

Week24 0828--0903_第8张图片

question 4:计算二叉树的直径

二叉树的定义为:两个节点间的距离的最大值

Week24 0828--0903_第9张图片

别人的答案:

最大的长度一定是某个节点的左边最大子节点长度+右边最大子节点长度,所以我们在计算子树长度的时候可以记录下这个最大值

Week24 0828--0903_第10张图片

question 5:求两个用字符串表示的整数的和

这个问题要求不用内置方法来完成,怎么样使得速度快点?

Week24 0828--0903_第11张图片

我的方法:很慢 1200ms 1%左右,差点超时过不了

这个思路是先将字符串转换成整数,完成加法,再将整数转换成字符串。这个方法还是比较绕的

Week24 0828--0903_第12张图片

别人的方法改进: 45ms,95%

我们考虑自己做加法的时候,肯定不会像上面这样做。

应该是按位相加,所以可以直接在一个循环内完成加法

Week24 0828--0903_第13张图片



你可能感兴趣的:(Week24 0828--0903)