牛客346787623号
牛客346787623号
全部文章
题解
归档
标签
去牛客网
登录
/
注册
牛客346787623号的博客
全部文章
/ 题解
(共10篇)
题解 | #最长回文子串#
回文子串分两种情况: 字串的长度是奇数 字串的长度是偶数 分两种情况,分别以当前的坐标为起点,向两边延申搜索即可,当奇数的时候,两边的起点都是当前坐标,当是偶数的时候,左边的起点是当前的点,右边的起点则是当前点的下一个坐标 class Solution { public: int res...
C++
2022-05-18
2
327
题解 | #把数字翻译成字符串#
class Solution { public: /** * 解码 * @param nums string字符串 数字串 * @return int整型 */ int solve(string s) { int p = 0, ...
C++
2022-05-17
0
252
题解 | #最小花费爬楼梯#
本题注意终点不是数组的最后一个位置,应该是最后一个位置的下一个位置,因此我们直接初始化的时候,就将楼梯的高度加上一,以能到达添加一个楼梯高度的最高点位终点 class Solution { public: int minCostClimbingStairs(vector<int>...
C++
2022-05-16
0
303
题解 | #N皇后问题#通俗理解
这里的关键就是判断当前的位置是否合法,这里给处最通俗的解释:判断函数输入的row和col表示当前位置的坐标,n是棋盘的大小,我们判断只需要判断当前坐标位置之前的位置知否合法即可,至于接下来的位置,我们等走到了再判断即可,给个图示就通俗了: 如上图所示,只检查箭头的方向,至于下面标红的我们等遍历到...
C++
2022-05-15
2
378
题解 | #对称的二叉树# deque双向队列
deque支持随机读取,同时又有queue的特性,所以只要使用一个即可 /* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : ...
C++
2022-05-02
0
293
题解 | #二叉树的后序遍历#
递归写法已经烂大街,这里继续只讨论堆栈的方法; 思路:首先前序遍历是:根-左-右,后续遍历是:左-右-根,发现没有,假如我将前序遍历先反转下:右-左-根,只要再次把左右节点的顺序给调换即可!好嘛,说了这么多,代码上面如何实现上面的操作呢?首先你得知道前序遍历的非递归写法,这里我直接贴上代码: c...
C++
2022-05-01
0
368
题解 | #二叉树的中序遍历# 使用栈
递归写法比较简单,直接按遍历的顺序在合适的位置将当前节点的数值插入即可。比较麻烦的是不使用系统给我维护的堆栈,我自己创建堆栈来实现整个过程。 首先中序遍历,最先要遍历的是左子树的节点,然后才是根节点,再来是右子树节点 我们先思考下堆栈的特点,是先进后出,先入栈的最后出来,最后如战斗的最...
C++
2022-05-01
0
386
题解 | #链表的奇偶重排#
奇数位,不是节点数值的奇偶性,第一遍弄错了 最简单的方式就是使用两个队列,一个放奇数位的一个放偶数位的,但是按照题目的要求,不是按照奇偶数值来进行分类的话,那么就没必要使用队列了,因为位置都是固定的 /** * struct ListNode { * int val; * struct Lis...
C++
2022-04-25
0
309
题解 | #合并k个已排序的链表#
优先队列,将全部非空的节点全部入队,然后每次选出最小的后,将选出的链表头指针往后移动一个位置,再次入队,如此反复 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNod...
C++
2022-04-23
0
316
题解 | #链表中的节点每k个一组翻转# c++ 堆栈
1、需要注意的是如果剩余的链表的节点个数小于k,那么就不用翻转了 2、使用堆栈,每次压入k个,然后对里面的进行翻转,翻转简单,但是连接有点麻烦,这也是本题的唯一难点,就是连接,解决了连接问题答案呼之欲出了 3、如何连接,首先初始化一个哑节点,这个节点的next是指向空的,因此第一遍我们直接判断它是否...
C++
2022-04-22
0
398