![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LeetCode
嘻嘻嘻277
努力学习,每天运动,早睡早起。
NNU菜鸡一枚,正在为GSoC努力准备!
展开
-
【LeetCode】二分专题汇总
二分专题:原视频特点二分的题目答案在一个确定的取范 [L,R] 内,所以每次找到取范区间的中点,并通过比较中点与目标值来缩小一般的范围,当 L=R 时,即找到答案。通常70%的题目是通过单调性(递增/减序列排成一列进行比较);95%的题目通过性质分界点,即题目中的变量存在两端性的性质(找到满足和不满足性质的分界点)思路二分题目的思路:确定二分边界编写二分的代码框架设计一个check(性质)判断一下区间如何更新如果更新方式写的是l=mid,r=mid-1,那么就在算mid的时候加上1原创 2020-09-26 19:33:39 · 156 阅读 · 0 评论 -
【LeetCode之每日一题系列】226. 翻转二叉树
226. 翻转二叉树直接使用递归/** * 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: TreeNode* in原创 2020-09-16 19:29:24 · 91 阅读 · 0 评论 -
【LeetCode-204】1569. 将子数组重新排序得到同一个二叉查找树的方案数
【困难】1569. 将子数组重新排序得到同一个二叉查找树的方案数思路:代码:相关链接:原创 2020-09-16 19:12:29 · 171 阅读 · 0 评论 -
【LeetCode-204】1568. 使陆地分离的最少天数
【困难】1568. 使陆地分离的最少天数思路:注意:判断连通块数量cnt是否大于1/等于0遍历每个结点,如果某个点未被遍历且为1,则找到了一个连通块,此时需要使用dfs判断周围是否有相连陆地(为了将此块陆地所连接的所有1进行标记)如果(cnt > 1 || cnt == 0),不需要操作,直接返回0否则,再次遍历,依次尝试删除一块陆地能否满足cnt>1,如果能满足,则返回1;否则返回2(默认一定有解)只需要将陆地分开,每个陆地可以是一个1,也可以是多个1连在一起形成一个连通分原创 2020-09-16 15:27:29 · 135 阅读 · 0 评论 -
【LeetCode-204】1567. 乘积为正数的最长子数组长度
【中等】1567. 乘积为正数的最长子数组长度递归是一种特殊的DP思路1:(不推荐)暴力:枚举所有的子数组,计算其结果是否为正。但是复杂度为n2,所以要进行优化思路2:(推荐)因为要求结果为正的最长数组的长度,所以不妨从末尾出发向前递推到符合条件的最长子数组分情况讨论ai的正负,长度为以a[i-1]结尾的最长子数组其中f(n)/g(n)表示以a[n]结尾的,结果为正/负的最长子数组的长度。所以f(n)/g(n)的值一定大于等于0,因为是长度。可得如下表格:第i个元素的大小(ai原创 2020-09-16 13:35:26 · 175 阅读 · 0 评论 -
【LeetCode-204】1566. 重复至少 K 次且长度为 M 的模式
【简单】题目:1566. 重复至少 K 次且长度为 M 的模式思路:长度是确定的,所以枚举起点,从起点开始是否有长度为k*m的片段【n】判断后面的km段是否将m重复了k遍【n】【时间复杂度nn 满足】代码:class Solution { public: bool containsPattern(vector<int>& arr, int m, int k) { int n=arr.size();原创 2020-09-16 12:16:39 · 127 阅读 · 0 评论 -
【LeetCode】练习题目汇总
第24场周赛原视频1566. 重复至少 K 次且长度为 M 的模式原创 2020-09-16 12:15:26 · 151 阅读 · 0 评论