解题思路
OK成华大道
这个作者很懒,什么都没留下…
展开
-
有限状态机
随后,它顺序地读取字符串中的每一个字符,并根据当前状态和读入的字符,按照某个事先约定好的「转移规则」,从当前状态转移到下一个状态;根据题意,「初始状态」应当为状态 1,而「接受状态」的集合则为状态 3、状态 4、状态 6、状态 9 以及状态 10。换言之,字符串的末尾要么是空格,要么是数字,要么是小数点,但前提是小数点的前面有数字。其中,一个状态可能既是「初始状态」,也是「接受状态」。自动机驱动的编程,可以被看做一种暴力枚举方法的延伸:它穷尽了在任何一种情况下,对应任何的输入,需要做的事情。原创 2024-05-09 14:14:53 · 441 阅读 · 0 评论 -
求逆序数的方法
树状数组可以求前缀和。原创 2024-04-16 19:41:41 · 168 阅读 · 1 评论 -
快速幂算法,时间复杂度logn
即计算 x 的 n 次幂函数(即,xn)。原创 2024-04-10 13:25:17 · 201 阅读 · 1 评论 -
计算二进制中1的个数
如1100&1011=1000.也就是说,把一个整数减去1,再和原整数做与运算,会把该整数最右边一个1变成0.那么一个整数的二进制有多少个1,就可以进行多少次这样的操作。减去1后,第三位变成0,它后面的两位0变成了1,而前面的1保持不变,因此得到的结果是1011.我们发现减1的结果是把最右边的一个1开始的所有位都取反了。如果我们把这个整数减1,那么原来处在整数最右边的1就会变为0,原来在1后面的所有的0都会变成1(如果最右边的1后面还有0的话)。输入一个整数,输出该数32位二进制表示中1的个数。原创 2024-04-09 14:42:48 · 229 阅读 · 0 评论 -
求二叉树深度 和 二叉树高度
求深度可以从上到下去查 所以需要前序遍历(中左右),而高度只能从下到上去查,所以只能后序遍历(左右中)求深度适合用前序遍历,而求高度适合用后序遍历。原创 2023-12-12 14:55:07 · 32 阅读 · 0 评论 -
常用排序方法
如使用快速排序。原创 2023-12-05 17:46:37 · 26 阅读 · 1 评论 -
滑动窗口问题
在暴力解法中,是一个for循环滑动窗口的起始位置,一个for循环为滑动窗口的终止位置,用两个for循环 完成了一个不断搜索区间的过程。窗口的起始位置如何移动:如果当前窗口的值大于s了,窗口就要向前移动了(也就是该缩小了)。窗口的结束位置如何移动:窗口的结束位置就是遍历数组的指针,也就是for循环里的索引。如果只用一个for循环来表示 滑动窗口的起始位置,那么如何遍历剩下的终止位置?所以 只用一个for循环,那么这个循环的索引,一定是表示 滑动窗口的终止位置。只不过这种解法更像是一个窗口的移动,所以叫做滑。原创 2023-11-21 14:45:17 · 36 阅读 · 0 评论