摘要: 原题链接 题解 可以直接使用一个queue直接解决,在进行push()操作的时候,当我们每插入一个元素,都要保证我们新插入的元素要在队头,这就要每一次插入的时候进行队列的反转,因为从开始插入的时候就反转,所以我们新插入的元素的前面的元素都是符合要求的(即后面插入的数据比前面插入的数据在队列的前面), 阅读全文
posted @ 2020-07-18 23:19 Lngstart 阅读(86) 评论(0) 推荐(0)
摘要: 原题链接 题解 利用双指针算法,直接让后面一个指向前面一个 代码如下 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x 阅读全文
posted @ 2020-07-18 17:38 Lngstart 阅读(87) 评论(0) 推荐(0)
摘要: 原题链接 题解 直接对二叉树进行遍历,如果找到了答案直接返回 代码如下 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * 阅读全文
posted @ 2020-07-07 10:28 Lngstart 阅读(83) 评论(0) 推荐(0)
摘要: 原题链接 题解 一个简单的动态规划,除了第0行、第0列和障碍物之外的点,都是由他的上一个点和左边的一个点拓展而来 所以当该点是障碍物:令dp[i][j] = 0(方便后面直接运算) 当该点是(0,0)且不是障碍:dp[0][0] = 1; 当该点是第0行的点:令dp[i][j] = dp[i][j 阅读全文
posted @ 2020-07-06 16:17 Lngstart 阅读(80) 评论(0) 推荐(0)
摘要: 原题链接 题解 题目是说有多少个连通块,每一次以一个开始,遍历并标记他能够到达的点(就是同一个连通块中的点) 代码如下 dfs #include <iostream> #include <algorithm> #include <cmath> #include <cstring> #include 阅读全文
posted @ 2020-07-04 15:34 Lngstart 阅读(90) 评论(0) 推荐(0)
摘要: 原题链接 题解 一个三维的bfs,直接向6个方向走就是了,直接套模板 #include <iostream> #include <algorithm> #include <queue> using namespace std; typedef struct node{ int x, y, z; no 阅读全文
posted @ 2020-07-04 14:44 Lngstart 阅读(190) 评论(0) 推荐(0)
摘要: 原题链接 题解 二叉搜索树的中序遍历是升序序列,题目给定的数组是按照升序的有序数组,因此可以确保数组是二叉搜索树的中序遍历序列。 题目中要保证是平衡的二叉搜索树,所以我们只要每次选择数组区间中间的点作为节点,节点的左边的数字一定是该节点的左子树,同理右边也是,就能保证是一个平衡的二叉树,利用递归来实 阅读全文
posted @ 2020-07-04 13:38 Lngstart 阅读(96) 评论(0) 推荐(0)
摘要: 原题链接 题解 题目的大意就是利用两个栈来模拟队列的插入和删除,最容易想到的就是声明两个栈a, b,a这个栈用来做插入,b用来做删除作用。 当我们数据插入到栈中的,栈中的数据顺序是和删除的顺序相反的,①这就可以利用b这个栈了,将a中的数据弹出,依次压入b中,那么b中就是删除的顺序了。 ②当我们删除的 阅读全文
posted @ 2020-06-30 11:29 Lngstart 阅读(85) 评论(0) 推荐(0)
摘要: 原题链接 分治方式 这个题目就是快速排序的一个变种(当然直接排序然后输出也是可以的),但是这里使用的是快速选择排序,在快速排序的过程之中可以把答案给找出来。 首先从快排的过程是:先选择一个基准值x,然后根据x将数组二分为了>=x和<=x的两个区间(这里是按降序的规则)然后再进行递归处理。 根据上述的 阅读全文
posted @ 2020-06-29 15:02 Lngstart 阅读(123) 评论(0) 推荐(0)
摘要: 原题链接 题解 要求最小的交换次数,那么就可以使用bfs来做,可以把每一次的交换之后的图抽象成一个节点,那么每次转移状态就相当于向下一个节点走,走过的边的权重为1(不是在原来的3*3的图上做bfs),这样就可以使用dfs做了 需要解决的问题是: ①每一个状态该如何表示 ②如何记录每个状态的距离 ③什 阅读全文
posted @ 2020-06-28 17:09 Lngstart 阅读(122) 评论(0) 推荐(0)