LeetCode
肩上杯雪
自强不息,知行合一
展开
-
LeetCode 1030. 距离顺序排列矩阵单元格
题意给定一个矩形,row ∈ [0, R) col ∈ [0, C),给定一个点 (r0, c0),返回一个vector<vector< int > >,其中每一个 vector< int > 是一对坐标点,顺序按照这些点到 (r0, c0) 距离的曼哈顿距离进行升序排列。思路方法一遍历矩形中的所有点,计算每个点到给定点的曼哈顿距离,sort即可。class Solution {public: vector<vector<i..原创 2020-11-17 14:47:08 · 164 阅读 · 0 评论 -
LeetCode 120. 三角形最小路径和 经典DP
题意:从一个三角形数组的顶点出发,每次只能向下( row + 1) 或者 右下(row+1, column+ 1)。求到底部最短的路径和。思路是一个经典的DP入门题。开始的时候我和之前一道题搞混了,想用bfs,把和都加到最后一行,但是写完了才发现根本就不一样。。虽然一开始就知道是DP,但是还想用dfs试试,结果虽然做出来了,但是在第43个样例就超时了。还是老老实实dp吧。首先dp[i][j] 我们设其为,从 triangle[I][j]到底部最短的路径和,显然,我们可以得知,dp[i][j]..原创 2020-07-14 15:25:32 · 151 阅读 · 0 评论 -
LeetCode面试题 17.13 回复空格
题意:给定一个字典,里面包含一些string,给定一个句子,从中匹配最多的字典中的string。输出未匹配的最少的字符数。思路:动态规划 + 字典树(1)动态规划dp[i] 代表 前i个字符未匹配的最少字符数。当遍历到第i个字符时,判断从 j 到第i个字符是否在字典中,如果在字典中,则dp[i] = min(dp[i], dp[j-1])。为什么是 dp[j-1],因为第j个字符到第i个都在字典中,所以是前 j-1个字符的未匹配最少字符数。若没在字典中匹配,则 dp[i] = dp[i-1.原创 2020-07-09 23:46:48 · 186 阅读 · 0 评论 -
LeetCode 108. 将有序数组转换为二叉搜索树
题意:给定一个有序数组,要求转化为二叉搜索平衡树。思路:我们知道,二叉搜索树的中序遍历是有序的,所以题目相当于给定中序遍历,创建一个二叉平衡树。如果是一个无序数组,我们创建二叉搜索树时,每插入一个节点都要进行二分查找寻找合适的位置,但因为已经有序,所以每次选择一个根节点,左边的数就是左子树,右边的是右子树。因为需要一个平衡树,所以选根节点的时候选中间的节点即可。如果是奇数就选中间的数,偶数就选左边的。选中间的节点,可以保证左右子树的节点数相差不超过1,那么为什么可以保证平衡呢?因为树的定义都是递.原创 2020-07-03 11:44:50 · 201 阅读 · 0 评论 -
LeetCode 209. 长度最小的子数组
题意:给定一个数组nums以及一个s,找出在nums中 >= s的长度最小的连续子数组,并返回其长度。思路:1、前缀和 + 二分查找首先想到的是暴力解法,第一个循环枚举子数组的左端点,第二个循环枚举右端点,同时维护一个最小的ans。for (int i = 0; i < n; i++) { int sum = 0; for (int j = i; j < n; j++) { sum += nums[j]; if (sum >=.原创 2020-06-28 13:54:28 · 164 阅读 · 0 评论 -
判断二叉树是否是平衡二叉树
前言本次首先是输入前序+ 中序遍历,创建一个二叉树,然后再判断其是否是平衡二叉树。如果创建,本贴不会讲,有意向的可以参考以下帖子:https://blog.csdn.net/qq_39763472/article/details/106976494思路:首先考虑到平衡二叉树的定义:对于每一个节点,它的左子树和右子树的高度之差不超过1。可以看出,是递归定义的,所以我们通过递归程序,先计算左子树高度,再计算右子树高度,如果相差小于1,则递归判断 左右子树 都是不是平衡二叉树。代码1、两个函.原创 2020-06-27 10:43:22 · 270 阅读 · 0 评论 -
计算二叉树带权路径和(WPL)
前言二叉树的带权路径和,指的是二叉树的所有叶子节点的权值 * 其深度 之和。本次因为是完整的程序,所以包含1)输入前序、中序序列 创建二叉树2)层序遍历打印出二叉树3)计算WPL数据结构定义typedef struct Node* List;typedef struct Node{List l, r;int data;};创建二叉树1、变量说明int n; // n是二叉树的节点数vector preorder(9), inorder(9); //前序和..原创 2020-06-26 23:54:03 · 2256 阅读 · 0 评论 -
LeetCode 53.最大子串和——DP
链接 : 原题题意 : 给定一个整数序列,找一个具有最大和的连续子串。思路 :动态规划。最近做的滑动窗口题比较多,我一开始想了半天滑动窗口,但是这题明显不是,因为没有判断条件。此题要O(n) 复杂度,所以肯定不能同时枚举起点和终点,所以只枚举重点。dp[i]代表的是以 第i个数字为结尾的最大连续子串长度。状态转移方程 : dp[i] = max(dp[i-1] + nums[i],...原创 2020-05-03 15:30:50 · 413 阅读 · 0 评论 -
LeetCode 3.无重复字符的最长子串——滑动窗口
链接 :原题题意 : 给定一个字符串s,寻找没有重复字符的最长子串,输出长度。例如 pwwkew 最长子串 wke。则长度为3.思路 :首先注意一下,子串 ≠ 子序列,子串是连续的。此题用的是双指针的一个应用,滑动窗口。思路即是,初始时,left = right = 0,然后只要满足条件 right指针右移,维护一个ans 代表最长子串的长度。如果不满足条件,则left 右移,缩减窗...原创 2020-05-03 14:43:14 · 152 阅读 · 0 评论 -
LeetCode 686 重复叠加字符串
链接 : 原题题意 :给定一个字符串a和b,判断 a重复加自身几次,b才是a的子串。思路:这里的子串是连续子串,并不是按顺序存在b里所有字母即可。所以我用的是 string里的find。题目说如果永远不可能,就输出-1,那么这个判定条件颇耐人寻味。如果不断加a后的字符串str的长度 > a + b的长度 - 1,那么b就不可能是a的子串了。原因很简单,我们设 len1...原创 2020-05-01 18:16:22 · 195 阅读 · 0 评论 -
LeetCode 21 合并两个有序链表——归并
链接 :原题题意 : 两个有序链表进行合并。思路:这个是经典的数据结构链表题,考研的时候在王道里面看到过,是一种经典的归并思想,也就是迭代。用的是尾插法。如果两个链表 l1 和 l2都不为空,那就比较两个数,较小的插入到 ans 表尾,更新节点,直到其中有一个链表为空。然后省下来的那个不为空的再逐渐添加到后面。代码:/** * Definition for singly-li...原创 2020-05-01 17:17:31 · 180 阅读 · 0 评论 -
LeetCode 202 快乐数——Floyd判圈算法
链接 : 快乐数题意 :思路:(1)只要把数位平方和相加,判断是否等于1即可。循环判断则用set即可。代码:class Solution { int check(int n){ int ans = 0; while(n){ int tmp = n % 10; ans += pow(tmp,2);...原创 2020-04-30 22:43:14 · 261 阅读 · 0 评论 -
LeetCode 1095 山脉数组中查找目标值——二分寻找极值
链接 : 原题题意 : 给定一个山脉数组,即凸函数,寻找一个数值等于target的index。思路 :因为凸函数峰值的左右都是一个单调函数,所以只要找到峰值,再对两边分别进行二分查找就可。凹凸函数找峰值,本来我是想用三分查找的,但是三分查找能确定峰值是double类型,即连续函数才适用的。整数点构成的凹凸函数,三分查找只能缩减一个区间。例如此题 :牛客算法周周练4 E题装备合成...原创 2020-04-29 22:50:58 · 356 阅读 · 0 评论 -
LeetCode 117 填充每个节点的下一个右侧节点指针
链接 : 原题题意:给定一个二叉树结构:使其每一个节点的next指针都指向其右侧的节点;如果右侧没有节点,就指向NULL。如图:思路:因为是给同一层的节点加上next,所以层序遍历即可。使用queue ,对每一层的节点,每次取出两个(如果是最后一个节点就特判,指向NULL),让前一个指向后一个即可。代码:class Solution {public: ...原创 2020-04-28 18:15:38 · 113 阅读 · 0 评论 -
LeetCode 76 最小覆盖子串
链接 : 最小覆盖子串题意:给定一个字符串s以及t,判断 s 里包含 t 所有字母的最小子串。思路:双指针的应用——滑动窗口(官方题解)举个例子,S = “ABAACBAB”,T = “ABC”首先两个指针 left = right = 0然后right 逐渐增加,直到窗口包含t 所有字母这时,维护最小的窗口,所以逐渐 缩减窗口,left ++ 。如果窗口减小后,不满足条件,则r...原创 2020-04-27 22:56:20 · 141 阅读 · 0 评论