- 博客(5)
- 收藏
- 关注
原创 剑指offer 34.二叉树中和为某一值的路径
采用先序遍历,遍历二叉树,设置一个vector来存储当前路径,除了遍历到新节点时要记得将节点加入vector外,还有记得树回溯时要把路径也跟着回溯。/**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), le
2021-06-07 17:47:28 75
原创 【leetcode】 字符串的左旋转 C++
题目描述字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。分析:该题比较容易,可以考虑直接用字符串的切片函数str.substr(),代码如下:class Solution {public:string reverseLeftWords(string s, int n) {string str1=s.substr(0,n);string str
2021-04-09 10:16:53 316
原创 【leetcode】操作给定的二叉树,将其变换为源二叉树的镜像。
题目描述操作给定的二叉树,将其变换为源二叉树的镜像。分析:处理树的问题用递归比较容易写,这里就递归交换左右子树就好了,要注意的是if(pRoot->leftNULL&&pRoot->rightNULL)return pRoot;这里返回pRoot而不是返回空,因为有可能该树只有一个结点,这时候也要返回根结点。这题还是比较容易的了。class Solution {public:/*** 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可*
2021-03-26 20:06:23 179
原创 【leetcode】青蛙跳楼梯问题
题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。分析:设跳上第n个台阶的跳法为f(n),那么倒过来想,跳上第n个台阶的方法有:先跳上第n-1个台阶,然后再跳1个台阶到第n个台阶、先跳上第n-2个台阶,然后再直接跳到第n个台阶、先跳上第n-3个台阶,然后再直接跳到第n个台阶等等。如此有:f(n)=f(n-1)+f(n-2)+f(n-3)+…+f(1)不要想着先跳到n-2个台阶再跳两下到最后台阶这样,因为这样的话已经包括在f(n-1)
2021-03-26 09:32:19 636
原创 【leetcode]用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。分享道leetcode算法题,思路很简单,就是入栈的时候不用想太对,入第一个栈就好了,然后出栈的时候,如果第二个栈是空的,就把第一个栈的元素全倒到第二个栈里,再从第二个栈出栈,这样就先进先出了。同时注意如果第二个栈不是空的,就不要把第一个栈的元素倒过去了,因为第二个栈里的元素已经比第一个栈里的元素先进了,直接从第二个栈出栈就好了。思路很简单。class Solution{private:stack sta
2021-03-25 11:02:37 161
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人