目录

  • 28. 实现 strStr()【KMP】
  • 141. 周期【KMP 未完成】
  • 91. 解码方法【未完成】
  • 821. 跳台阶
  • 363. 矩形区域不超过 K 的最大数值和【前缀和】
  • 3412. 邻域均值【前缀和】
  • 368. 最大整除子集【未完成】
  • 12. 背包问题求具体方案【DP】
  • 377. 组合总和 Ⅳ【DP】
  • 3382. 整数拆分【DP】
  • 897. 递增顺序搜索树【模拟】
  • 47. 二叉树中和为某一值的路径【dfs】

28. 实现 strStr()【KMP】

class Solution {public:int strStr(string s, string p) {if(p.empty()) return 0;int n=s.size(),m=p.size();s=' '+s,p=' '+p;vector<int> next(m+1);for(int i=2,j=0;i<=m;i++){while(j&&p[i]!=p[j+1]) j=next[j];if(p[i]==p[j+1]) j++;next[i]=j;}for(int i=1,j=0;i<=n;i++){while(j&&s[i]!=p[j+1]) j=next[j];if(s[i]==p[j+1]) j++;if(j==m) return i-m;}return -1;}
};

141. 周期【KMP 未完成】

91. 解码方法【未完成】

821. 跳台阶

#include<cstdio>
#include<iostream>
using namespace std;
int n;
int f(int n)
{return (n==1||n==2)?1:f(n-1)+f(n-2);
}
int main(void)
{cin>>n;cout<<f(n+1)<<endl;return 0;
}

363. 矩形区域不超过 K 的最大数值和【前缀和】

class Solution {public:int maxSumSubmatrix(vector<vector<int>>& matrix, int k){int s[105][105]={0};int n=matrix.size();int m=matrix[0].size();for(int i=0;i<n;i++)for(int j=0;j<m;j++) s[i+1][j+1]=matrix[i][j];for(int i=1;i<=n;i++)for(int j=1;j<=m;j++) s[i][j]+=s[i-1][j]+s[i][j-1]-s[i-1][j-1];int ans=-1e9;for(int i=1;i<=n;i++){for(int j=i;j<=n;j++){for(int l=1;l<=m;l++){for(int r=l;r<=m;r++){int x=i,y=l;int xx=j,yy=r;int sum=s[xx][yy]-s[x-1][yy]-s[xx][y-1]+s[x-1][y-1];if(sum<=k) ans=max(ans,sum);}}}}return ans;}
};

3412. 邻域均值【前缀和】

#include<bits/stdc++.h>
using namespace std;
const int N=1010;
int s[N][N],n,L,r,t;
int main(void)
{cin>>n>>L>>r>>t;for(int i=1;i<=n;i++)for(int j=1;j<=n;j++) cin>>s[i][j],s[i][j]+=s[i-1][j]+s[i][j-1]-s[i-1][j-1];int cnt=0;for(int i=1;i<=n;i++)for(int j=1;j<=n;j++){int x=max(1,i-r),y=max(1,j-r);int xx=min(n,i+r),yy=min(n,j+r);int sum=s[xx][yy]-s[x-1][yy]-s[xx][y-1]+s[x-1][y-1];int m=(xx-x+1)*(yy-y+1);if(m*t>=sum) cnt++;}cout<<cnt;return 0;
}

368. 最大整除子集【未完成】

12. 背包问题求具体方案【DP】

#include<bits/stdc++.h>
using namespace std;
const int N=1010;
int f[N][N],w[N],v[N],n,m;
int path[N];
int main(void)
{cin>>n>>m;for(int i=1;i<=n;i++) cin>>v[i]>>w[i];for(int i=n;i>=1;i--){for(int j=0;j<=m;j++){f[i][j]=f[i+1][j];if(j>=v[i]) f[i][j]=max(f[i][j],f[i+1][j-v[i]]+w[i]);}}int cnt=0;for(int i=1,j=m;i<=n;i++){if(j>=v[i]&&f[i][j]==f[i+1][j-v[i]]+w[i]){path[cnt++]=i;j-=v[i];}}for(int i=0;i<cnt;i++) cout<<path[i]<<" ";return 0;
}

377. 组合总和 Ⅳ【DP】

class Solution {public:int combinationSum4(vector<int>& nums, int target) {unsigned int f[100005]={0};f[0]=1;for(int i=1;i<=target;i++){for(int j=0;j<nums.size();j++) if(i>=nums[j]) f[i]+=f[i-nums[j]];}return f[target];}
};

3382. 整数拆分【DP】

#include<bits/stdc++.h>
using namespace std;
const int mod=1e9;
int a[25],n;
void init()
{a[1]=1;for(int i=2;i<=21;i++) a[i]=a[i-1]*2;
}
int f[10000005];
int main(void)
{init();cin>>n;f[0]=1;for(int i=1;i<=21;i++){for(int j=a[i];j<=n;j++){f[j]=(f[j]+f[j-a[i]])%mod;}}cout<<f[n];return 0;
}

897. 递增顺序搜索树【模拟】

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {public:TreeNode* increasingBST(TreeNode* root) {TreeNode* head=new TreeNode(-1);auto temp=head;dfs(root,temp);return head->right;}void dfs(TreeNode* root,TreeNode* &temp){if(!root) return;if(root->left) dfs(root->left,temp);temp->right=new TreeNode(root->val);temp=temp->right;if(root->right) dfs(root->right,temp);}
};

47. 二叉树中和为某一值的路径【dfs】

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/
class Solution {public:vector< vector<int> >ans;vector<int>path;void dfs(TreeNode* root,int sum,int x){if(!root) return;sum+=root->val;if(!root->left&&!root->right){path.push_back(root->val);if(sum==x) ans.push_back(path);path.pop_back();return;}path.push_back(root->val);if(root->left) dfs(root->left,sum,x);path.pop_back();path.push_back(root->val);if(root->right) dfs(root->right,sum,x);path.pop_back();}vector<vector<int>> findPath(TreeNode* root, int x) {dfs(root,0,x);return ans;}
};

2021春季每日一题【week6 未完结】相关推荐

  1. 2021春季每日一题【week4 完结】

    目录 80. 删除有序数组中的重复项 II 817. 数组去重 81. 搜索旋转排序数组 II 22. 旋转数组的最小数字 153. 寻找旋转排序数组中的最小值 68. 0到n-1中缺失的数字 154 ...

  2. 2021春季每日一题【week5 未完结】

    目录 179. 最大数[贪心] 1453. 移掉K位数字[贪心 / 思维] 783. 二叉搜索树节点最小距离 71. 二叉树的深度 208. 实现 Trie (前缀树)[未完成] 142. 前缀统计[ ...

  3. 2021春季每日一题【week3 未完结】

    目录 190. 颠倒二进制位 77. 翻转单词顺序 74. 搜索二维矩阵 15. 二维数组中的查找[思维 双指针] 90. 子集 II[dfs] 93. 递归实现组合型枚举 1006. 笨阶乘[栈] ...

  4. 2021春季每日一题【week8 未完结】

    目录 7. 整数反转[难度: 一般 / 知识点: 模拟] 78. 左旋转字符串[难度: 简单 / 知识点: 字符串] 435. 传球游戏[难度: 一般 / 知识点: DP] 7. 整数反转[难度: 一 ...

  5. 2021春季每日一题 【week2 未完结】

    目录 LeetCode 191. 位1的个数[难度: 简单 / 知识点: 位运算] 85. 不用加减乘除做加法[难度: 中 / 知识点: 思维 全加器] 341. 扁平化嵌套列表迭代器[模拟] 149 ...

  6. 2021春季每日一题 【week1 未完结】

    目录 92. 反转链表 II[难度: 中 / 知识点: 链表] 35. 反转链表[难度: 中 / 知识点: 链表] 1603. 设计停车系统 [难度: 简单 / 知识点: 模拟] 3267. 小明上学 ...

  7. 2021暑假每日一题 【week4 完结】

    目录 3781. 乘车问题[难度: 简单 / 知识点: 模拟] 3782. 点[难度: 中 / 知识点: 数学 推式子] 3783. 第 k 个除数[难度: 一般 / 知识点: 数学 求因子] 378 ...

  8. 2021暑假每日一题 【week9 完结】

    目录 3824. 在校时间[简单 / 知识点: 模拟] 3825. 逃离大森林[中 / 知识点: bfs 思维] 3824. 在校时间[简单 / 知识点: 模拟] #include<bits/s ...

  9. 2021暑假每日一题 【week5 完结】

    目录 3790. 录入单词[难度: 一般 / 知识点: 模拟] 3791. 解码[难度: 简单 / 知识点: 模拟] 3792. 质数问题[难度: 简单 / 知识点: 线性筛 枚举] 3793. 最大 ...

最新文章

  1. sap scc4 客户端设置
  2. 通达信服务器维修点查询,通达信验证服务器数据库修改
  3. 傅立叶变换是如何改变我们生活的? ——四个角度告诉你答案
  4. kafka的connect实现数据写入到kafka和从kafka写出
  5. MySQL memo优化_mysql memo
  6. 能测电机温度和振动在线测量工具——温振变送器
  7. python 实现相关系数计算和检验
  8. python dlib caffe人脸相似度_基于深度学习的人脸识别系统(Caffe+OpenCV+Dlib)【二】人脸预处理...
  9. 计算库存产品成本---移动加权平均…
  10. CTC loss 理解
  11. 物联网与嵌入式系统的关系
  12. html css 画梯形,css怎么画梯形?
  13. 在java中用log4j写日志文件
  14. 如何对测试过程进行可见的有效的管理
  15. java jvm垃圾回收算法_深入理解JVM虚拟机2:JVM垃圾回收基本原理和算法
  16. 人工智能时代创造少儿编程实用能力
  17. mse python_MSE与MAE的区别与选择
  18. 今日头条回应90亿元地产收购传闻;微信号遭公开买卖;苹果新AirPods增加黑色款 | 雷锋早报...
  19. python模板怎么写_模板模式-Python
  20. 2017 后端面试经历分享

热门文章

  1. Py之pyecharts:python包之数据可视化包pyecharts简介、安装、使用方法之详细攻略
  2. 正则表达式的简单理解
  3. BrowserLog——使用Chrome控制台作为Log查看器
  4. 03_4_this关键字
  5. 数学问题当中的一些基本计数问题
  6. 巧用Graphviz和pvtrace等工具可视化C函数调用
  7. Help:立体图绘制以及根据X,Y,Z三坐标值,在图上描点
  8. 飞鸽传书找不到其他人的问题
  9. Hyperledger Fabric 管道(1) 基本概念
  10. 【django】使用虚拟环境