算法
文章平均质量分 53
用于记录刷题心得等
ProLover98
这个作者很懒,什么都没留下…
展开
-
【力扣】725. 分隔链表
题目概述原题链接链表定义如下:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */思考过程根据题意,需要将原链表尽可能等分,设原链表长度为n,那么有三种情况n < k:即原链表长度小于要划分的组数,那么只有前面n组有元素且原创 2021-03-27 10:47:36 · 206 阅读 · 0 评论 -
【力扣】114. 二叉树展开为链表
题目概述原题链接树定义如下:/** * 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), rig原创 2021-03-19 11:15:16 · 187 阅读 · 0 评论 -
【力扣】654. 最大二叉树
题目概述原题链接相关节点定义:/** * 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),原创 2021-03-16 15:05:53 · 227 阅读 · 0 评论 -
【力扣】面试题 04.03. 特定深度节点链表
题目概述原题链接树及链表定义如下:/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; *//** * Definition for singly-linked lis原创 2021-03-15 20:34:54 · 183 阅读 · 0 评论 -
【力扣】589. N 叉树的前序遍历
题目概述给定一个 N 叉树,返回其节点值的前序遍历 ,N叉树节点定义如下:class Node {public: int val; vector<Node*> children; Node() {} Node(int _val) { val = _val; } Node(int _val, vector<Node*> _children) { val = _val; child原创 2021-03-13 16:19:39 · 266 阅读 · 0 评论 -
【LeetCode】39. Combination Sum(C++)
题目概述给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。原题链接例如:输入:candidates = [2,3,6,7], target = 7输出:[ [7], [2,2,3] ]难度级别:Medium思考过程首先想的是用两层for循环,计算从i开始到结尾所有满足条件的解法。问题在于不能进行跳选。思考很久发现对这类题不太了解,故原创 2020-09-09 10:02:02 · 169 阅读 · 0 评论 -
【LeetCode】62. Unique Paths(C++)
题目概述给定一个地图的长和宽,即m和n。求机器人从左上角到右下角能有多少条路径并返回,其中每次只能往右或者往下进行变化(原题链接)例如:输入:m = 3,n = 2输出:7难度级别:Medium解题思路注:由于我是先刷了这个题,发现两个题竟然是如此的相似,以致于我直接复制了自己写的题解稍微改了一下,区别在于对dp数组的定义不同设置二维数组dp,dp[i][j]表示从左上角出发到(i...原创 2020-02-09 13:49:55 · 194 阅读 · 0 评论 -
LeetCode刷题笔记
说明本博客旨在快速找到本人在LeetCode上的刷题题解链接【LeetCode】64. Minimum Path Sum(C++)【LeetCode】392. Is Subsequence(C++)原创 2020-02-09 13:15:58 · 133 阅读 · 0 评论 -
【LeetCode】64. Minimum Path Sum(C++)
题目概述给定一个m×n的数组,找到从左上角到右下角权重最下的路径,并返回最短路径长度,其中,每次只能往右或者往下移动(原题链接)例如:输入:{{1,3,1},{1,5,1},{4,2,1}}输出:7(路径为1->3->1->1->1)难度级别:Medium解题思路本题可采用动态规划的思路进行求解,设置二维数组dp,dp[i][j]表示从左上角开始到(i,j)处...原创 2020-02-09 13:11:27 · 139 阅读 · 0 评论 -
【算法技巧】数组连续子集操作---滑动窗口使用
题目已知一个数组arr=[-5,2,7,4,3,6],求长度为k的连续连续子集和中最大值解题思路想法1首先是比较容易想到的思路,即利用双层循环进行遍历,代码如下:int maxSum(vector<int> &arr,int k){ //首先进行判断,如果数组长度不足k,直接返回0 int n = arr.size(); if(n < k) return ...原创 2020-02-09 11:03:15 · 931 阅读 · 0 评论 -
【LeetCode】392. Is Subsequence(C++)
题目概述大意就是给两个字符串s和t,判断s是否是t的子串,如果是返回true,如果不是返回false(原题链接)难度级别:easy解题思路既然是判断s是否为t的子串,容易想到的就是拿s中每一个字符去跟t的字符进行比较,那么需要做的就是设置两个变量(可理解为指针),如下图所示:初始化可以看出第一个字母即匹配成功,则同时移动指针i和指针j从第二步可以看出,指针i所指(b)和指针j所...原创 2020-02-08 22:21:44 · 260 阅读 · 0 评论