自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 2.1

题目路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。该路径 至少包含一个 节点,且不一定经过根节点。路径和 是路径中各节点值的总和。给你一个二叉树的根节点 root ,返回其 最大路径和 。解题过程思路:对于一个二叉树a是根结点即(root)b和c是a的子结点。最大的路径情况有三种:a+b+cb+a+a的父结点c+a+a的父结点其中情况1无法递归,但可能是最大的路径和。情况2 3对a+b和a+c进行递归,选择最优的,遇到负数就舍弃。解题代码cl

2021-02-01 19:07:29 180

原创 1.31

题目解题思路结点root不存在,直接返回null;结点root等于p或者q,返回root;分别递归左右子树;左子树为空,返回右子树;右子树为空,返回左子树;都不为空,返回root;都为空,返回null。解题代码:class Solution {public: TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) { if(root==NULL)

2021-01-31 14:13:16 131

原创 1.30

题目给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”解题思路从上到下遍历的时候,cur节点是数值在[p, q]区间中则说明该节点cur就是最近公共祖先了。然后就是一步步的递归了class Solution {public: TreeNode* lowestCommonAncestor(Tr

2021-01-30 22:09:22 140

原创 1.29

题目给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。思路1.递归中序遍历数组class Solution {public: int n=0; int res; int kthSmallest(TreeNode* root, int k) { dfs(root,k); return res; } void dfs(TreeNode* root,int k)

2021-01-29 20:01:14 144 1

原创 1.28

题目给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回它的最大深度 3 。解题过程思路:如果我们知道了左子树和右子树的最大深度 ll 和 rr,那么该二叉树的最大深度即为\max(l,r) + 1max(l,r)+1而左子树和右子树的最大深度又可以以同样的方式进行计算。因此我们在计算当前二叉树的最

2021-01-28 23:15:37 207

原创 1.26

题目给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。‘.’ 匹配任意单个字符‘*’ 匹配零个或多个前面的那一个元素所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。解题过程思路:递归(递归永远滴神)先考虑s空,p不空和s不空,p空的情况。若s空,p不空。p长度为奇数,一定返回false;p长度为偶数,若*在奇数位上,返回true;否则返回false。若s不空,p空,一定返回false。s,p都不空。定义as=s[0] a

2021-01-27 20:17:49 168

原创 1.25

题目给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。解题过程思路:一位位遍历字符串haystack寻找needle。解题代码:class Solution {public: int strStr(string haystack, string needle) { if(needle.empty()) retu

2021-01-25 19:38:25 83

原创 1.24

题目给定一个字符串,逐个翻转字符串中的每个单词。说明:无空格字符构成一个 单词 。输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。示例 1:输入:“the sky is blue”输出:“blue is sky the”示例 2:输入:" hello world! "输出:“world! hello”解释:输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。示例 3:输入:

2021-01-24 15:19:11 121

原创 1.23

题目编写一个函数来查找字符串数组中的最长公共前缀。示例 1:输入:strs = [“flower”,“flow”,“flight”]输出:“fl”示例 2:输入:strs = [“dog”,“racecar”,“car”]输出:""解释:输入不存在公共前缀。提示:0 <= strs.length <= 2000 <= strs[i].length <= 200strs[i] 仅由小写英文字母组成解题过程思路1:纵向对比,比较相同列上的字符是否相等。代码:

2021-01-23 19:44:08 229

原创 1.22

题目给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。思路思路1:两数做乘法,第二个数的每一位乘以第一个数,然后将每一个结果相加。思路2:通过两数相乘时,乘数某位与被乘数某位相乘,与产生结果的位置的规律来完成。具体规律如下:乘数 num1 位数为 MM,被乘数 num2 位数为 NN, num1 x num2 结果 res 最大总位数为 M+Nnum1[i] x num2[j] 的结果为 tmp(位数为两位,“0x”,

2021-01-22 20:56:21 288 1

原创 1.21

题目给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。解题思路1.因为使用位运算符没法解决问题,所以对于这道题,我最开始想到的是将所有的数相加,其和一定比其中非重复数字相加和的三倍小两个只出现一次的数字。但是自己不会表示非重复数字相加和,放弃。2.第二个想法:先进行升序排列,然后从第一个数开始和距离这个数两位数的那个数字进行比较,比较完后每次移动三格,若不相等,则输出这个数字。利用sort(begin(),end())解决问题。3.查阅资料

2021-01-21 19:42:36 323

原创 1.20

题目给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。思路利用异或运算符的特点,a^a=0; 0^a=a;解答此题。解题代码class Solution {public: int singleNumber(vector<int>& nums) { int length=nums.size(); int result=0; for(int i=0;i<length;i++)

2021-01-20 20:26:34 81

原创 1.19

题目给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。思路1.使用快慢指针把链表分成两半,要断链,同时断了之后还要有两个链表的头节点,所以用快慢指针断链的时候需要一个结点pre记录slow的前驱结点,然后 pre->next==nullptr,那么两个链表即为[head,pre]和[slow,nullptr]。2.合并链表的方法就是合并排序链表的递归方法。解题代码class Solution {public: ListNode* sortList(List

2021-01-19 20:45:27 178 2

原创 1.17(2)

题目解题思路1.先比两个链表长度长短,短的在后面补零使得长度与长的相同。2.对应位相加考虑进位。解题代码class Solution {public: ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) { ListNode*p=l1; ListNode*q=l2; int length1=1; int length2=1; while(l1-&

2021-01-18 14:33:23 70

原创 1.17(1)

题目给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意,pos 仅仅是用于标识环的情况,并不会作为参数传递到函数中。说明:不允许修改给定的链表。解题思路借用了力扣官方的算法表述(感觉自己表述不清楚)解释为什么慢指针会在第一圈未走完的时候与快指针相遇假设环长A,慢指针到环点的时候,快指针距离环点B(0<B<A

2021-01-17 15:57:25 114

原创 1.16

题目给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。思路判断是否有环,一个链表,定义两个指针,一个在前一个在后,在前面的指针每次走最少两个节点,在后面的指针每次

2021-01-16 10:45:59 123

原创 1.15

题目将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。思路首先应该明白什么是链表。链表定义:表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。想要解决这道题目,可以新建一个结点point,然后依次比较l1和12当前结束、点的值,将较小值对应的结

2021-01-15 21:51:07 350

原创 寒假兴趣小组作业总结 1.13

题目解题思路1.对于一个字符串s,其中包含的最大回文串,既可以以单字符为中心形成回文串,也可以以双字符为中心形成回文串。因为不知道s,所以这两种情况都需要考虑到,然后比较两种情况形成的回文串长度的大小,取组成回文串长度大的为回文串中心。2.长度确定后,从s中找到相应的回文串即为最大回文串。解题代码class Solution {public: string longestPalindrome(string s) { int left1=0,ri

2021-01-13 15:43:49 146

原创 寒假兴趣小组作业总结 1.12

思路思路1:使用辅助栈,每往栈里面入一个元素,都往辅助栈里面加入栈里面最小的元素,使得每个元素都与相应的最小元素一一对应。当一个元素要入栈时,把它与辅助栈栈顶的元素作比较,得出最小值,将这个最小值放入辅助栈的栈顶。栈里的一个元素要出栈时,对应的辅助栈的元素也要出栈。思路2:用一个栈实现,每次入栈两个元素,先进入的是元素本身,后进入的是当前栈元素的最小值(缺点:无法实现题目中的输出栈顶元素,只能输出最小值)。代码实现(代码1)class MinStack { stack<int&g

2021-01-12 10:26:06 140

原创 寒假兴趣小组作业总结 1.11

思路利用栈(stack)的用法,左括号就进入栈,右括号就出栈比对,最后为空则返回ture。注意:奇数个括号可直接输出false。代码class Solution {public: bool isValid(string s) { stack<char>stk; for(int i=0;i<s.size();i++) { if(s[i]=='('||s[i]=='['||s[i]=='{')

2021-01-11 16:31:07 105

原创 寒假兴趣小组作业总结 1.10

思路对于回文数,负数一定不是回文数,小于十的正整数一定是回文数。因此,只需要对于大于等于十的正整数进行判断是否为回文数。用整数反转的思路来表示一个数的倒序。代码class Solution {public: bool isPalindrome(int x) { if(x<0) { return false; } //负数 if(x <= 9 && x &g

2021-01-10 15:22:37 131

原创 寒假兴趣小组作业总结 1.9

思路对于任意一个整数,它都可以写成a✖10^n➕ b✖10(n-1)+…的形式。对于整数反转这道题目,我的思路是将这个数的每一位用a✖10n表示,然后将对称位置的a’与a交换。对于正负数的,我用一个字母,给他赋予两个不同值来代表正负数字。代码<class Solution {public: int reverse(int x) { long double temp=0,i,t,n=1.0; t=x; if(x<0) /

2021-01-09 18:31:55 139

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除