![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法学习
MikeSentence
这个作者很懒,什么都没留下…
展开
-
算法题 leetcode #4 寻找两个正序数组的中位数 二分查找
leetcode #4寻找两个正序数组的中位数O(m+n)的思路大家都会, 合并两个数组再找出中位数即可题目的进阶要求是时间复杂度为O(log(m+n), 思路是使用二分查找, 将寻找中位数转换为寻找第k小的元素, 详细见代码注释public class Test{ static void print(String x){ System.out.println(x); } static void print(int x){ System.out原创 2021-03-10 12:43:40 · 131 阅读 · 0 评论 -
算法学习 区间dp 涂色PAINT
题目链接:牛客网 涂色PAINT这是一道区间dp题,题目有小错误,字符串的长度不是5,而是小于1005的长度。定义:f[i][j] 为区间[i,j]需要涂色最少的次数我们可以发现这样一件事:我们涂色尽量从最两端的颜色开始涂,虽然无从证明,但是对该题是正确的结论。假设字符串为s,当区间[i,j]两端颜色相同时,可以先把整段区间涂成该种颜色,所以此时省略一步,即f[i][j]=min(f[i+1][j],f[i][j-1]);只有这种情况特殊,之后套用区间dp模板即可: for(int l原创 2020-08-09 15:46:18 · 632 阅读 · 0 评论 -
算法学习 简单的动态规划题 乌龟棋
题目链接如下牛客网-乌龟棋这是一道dp水题状态转移函数包含在代码中#include <bits/stdc++.h>#define LL long long#define MAXN 45using namespace std;int n,m;int f[MAXN][MAXN][MAXN][MAXN];int a[355],b[125];int x[5];int main() { scanf("%d%d",&n,&m); for(int.原创 2020-08-05 01:13:21 · 154 阅读 · 0 评论 -
算法学习 单调栈 最大子矩阵问题
单调栈即栈的元素存储满足单调性。单调性是基于从栈顶到栈底元素大小关系而言的,如:(代码中的大小关系可以自定义,如将<改为<=等)单调递增栈:栈顶到栈底单调递增 stack<int> stk; int tmp; ... ... while(!stk.empty()&& stk.top() < tmp) { stk.pop(); }单调递减栈:栈顶到栈底单调递减 stack<int> stk; int tmp; ...原创 2020-08-02 08:55:29 · 305 阅读 · 0 评论