第一题 38. Count and Say
题目描述
第一个给出的是String = 1,之后每一个都是按照一定规律对前面的那个String进行描述。
例如,第一个数是1,第二个则对第一个进行描述,有1个1 = > 11
第二个数即为11, 第三个对第二个进行描述,可看做2个1 => 21
则第三个数为21,第四个对第三个进行描述,可看做1个2 和 1个1 = > 1211
依次类推
第一个给出的是String = 1,之后每一个都是按照一定规律对前面的那个String进行描述。
例如,第一个数是1,第二个则对第一个进行描述,有1个1 = > 11
第二个数即为11, 第三个对第二个进行描述,可看做2个1 => 21
则第三个数为21,第四个对第三个进行描述,可看做1个2 和 1个1 = > 1211
依次类推
在一个二维矩阵中,有0,-1,Integer.MaxValue三种数字,分别表示了入口,墙壁,空区域。
现在需要求从0到这些空区域的最小距离分别是多少
如果DFS暴力求解,将会超时。因此,我们采用BFS进行求解
将所有被环绕的’O’变为‘X’,被环绕的定义是,所有相邻的’O’周围不靠近边界
利用DFS对所有从边界开始的’O’进行探测,找出所有不环绕的’O’
假设一个Linked List中的每一个数字代表一个整数的一个位,将这个数加1
我们首先标记出本位不是9且下一位是9的数字,之后检测最后一位,如果是9.则标记的后面全部置0,本身加1。如果标记位本身为null,说明整个都需要进位,创造新的节点
移除链表从后往前数的第nth个ListNode
如果想要在O(n)的情况下完成,那么我们需要利用两个Pointer,这两个Pointer指示的是第一个和第二个的距离。之后同时移动两个Pointer,当一个到达尾端的时候,那么另一个指示的位置即我们想要删除的位置