摘要: 题目 找出数组中每个数右边第一个比它大的元素。 思路 1. 暴力解法 2. 单调栈 使用栈结构。从前往后遍历数组每一位时,利用栈更新这一位之前每一位上的数的“右边第一个比它大的元素”。 代码 参考 https://blog.csdn.net/smileiam/article/details/8873 阅读全文
posted @ 2019-10-21 22:02 sqqq 阅读(553) 评论(0) 推荐(0) 编辑
摘要: 题目 "https://www.acwing.com/problem/content/description/22/" 思路 方法一 bfs。yxc大佬说如果数据大的时候c++写dfs可能会爆栈。 Java代码 java import java.util.LinkedList; class Solu 阅读全文
posted @ 2019-08-16 22:31 sqqq 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 题目 "https://www.acwing.com/problem/content/21/" 思路 枚举。枚举起点,枚举四个方向。 时间复杂度:设矩阵n行m列,要匹配的字符串长k,O(nm 3^k)。 Java代码 class Solution { int[] dx = new int[]{ 1, 阅读全文
posted @ 2019-08-16 21:17 sqqq 阅读(98) 评论(0) 推荐(0) 编辑
摘要: 题目 "https://www.acwing.com/problem/content/description/20/" 思路 因为数组可能包含重复项。所以有可能是下面这种排序方式: 这样子是不能用二分模板的,需要先处理成下面这个样子: 这时,左半边所有元素 =nums[0],右半边所有元素0 && 阅读全文
posted @ 2019-08-16 17:34 sqqq 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 快排 快排模板 java //快排模板 void quick_sort(int q[], int l, int r) { if (l = r) return; // 不能是==, 因为区间可能没有数 int i = l 1, j = r + 1, x = q[l + r 1]; //第12行如果用j 阅读全文
posted @ 2019-08-12 21:00 sqqq 阅读(414) 评论(0) 推荐(0) 编辑
摘要: 准备把平时做的笔记搬到线上。加油! 阅读全文
posted @ 2019-08-12 17:56 sqqq 阅读(106) 评论(0) 推荐(0) 编辑