1630. Arithmetic Subarrays
Analysis
题目有点长,大概意思就是判断给定下标区间内的数能不能构成等差数列。
Code
如果这个题要优化时间,感觉可以从构成等差数列的最大区间入手呢?先暴力再说😂。
1 | class Solution { |
em,暴力过了...🤣
想想如何优化,仔细想想构成等差数列的最大区间,其内部的小区间不一定能构成等差数列,所以这个思路可能不太行。
这样看来,一定要得把给定的小区间范围内的数挑出来后,才能进行判断。
看了一下别人的思路,其实可以避免排序。按照等差数列的性质,数列中每一项减去首项后,得到的结果全部是公差的倍数,这样就只用判断这些差是否能别第一项公差整除即可,就不用排序了。
但是要注意公差 d 为 0 时,无法当作除数,但等差数列的公差是可以为 0 的(此时数列为常数列)。
1 | class Solution { |
就这个题而言,运行速度确实提升了不少...
429. N-ary Tree Level Order Traversal
Analysis
这个题好像是之前每日一题做过的题哈...
常规题型,N 叉树的层序遍历。
Code
这是原来写的:
1 | class Solution { |
现在写的:
1 | class Solution { |
虽然现在自己写也通过了,不过还是有不足的地方啊...
首先是没有必要再用一个队列来保存下一层的结点顺序,只需要每次循环前记录下队列的大小就可以了。其次,就是有些地方还可以再写的简单点...
1 | class Solution { |
用了一下 move 函数,提升一下速度。
Summary
感觉这两个题的难度大概是周赛第二道题的难度...