摘要:
题目 找出数组中每个数右边第一个比它大的元素。 思路 1. 暴力解法 2. 单调栈 使用栈结构。从前往后遍历数组每一位时,利用栈更新这一位之前每一位上的数的“右边第一个比它大的元素”。 代码 参考 https://blog.csdn.net/smileiam/article/details/8873 阅读全文
摘要:
题目 "https://www.acwing.com/problem/content/description/22/" 思路 方法一 bfs。yxc大佬说如果数据大的时候c++写dfs可能会爆栈。 Java代码 java import java.util.LinkedList; class Solu 阅读全文
摘要:
题目 "https://www.acwing.com/problem/content/21/" 思路 枚举。枚举起点,枚举四个方向。 时间复杂度:设矩阵n行m列,要匹配的字符串长k,O(nm 3^k)。 Java代码 class Solution { int[] dx = new int[]{ 1, 阅读全文
摘要:
题目 "https://www.acwing.com/problem/content/description/20/" 思路 因为数组可能包含重复项。所以有可能是下面这种排序方式: 这样子是不能用二分模板的,需要先处理成下面这个样子: 这时,左半边所有元素 =nums[0],右半边所有元素0 && 阅读全文