自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode刷题——二叉树3

LeetCode刷题——二叉树3翻转二叉树对称二叉树平衡二叉树路径总和翻转二叉树题目链接.题意:翻转一棵二叉树。思路:直接遍历树,然后翻转当前节点的左右节点。class Solution {public: TreeNode* invertTree(TreeNode* root) { if (root == NULL) return root; swap(root->left, root->right); // 中 inve

2021-10-15 15:24:02 97

原创 LeetCode刷题——二叉树2

LeetCode刷题——二叉树2层序遍历二叉树的层次遍历 II填充每个节点的下一个右侧节点指针二叉树的最大深度二叉树的最小深度层序遍历一层一层遍历二叉树,广度优先搜索。用队列保存节点,队列加入头节点,队列不为空则执行循环体。记录此刻队列的长度,进入另一个循环,长度为循环次数。用t记录当前队列头部元素,q.pop(),如果t->left 不为空,将t->left加入队列,如果t->right不为空,将t->right加入队列。class Solution {public:

2021-10-06 20:05:10 94

原创 LeetCode刷题——二叉树1

LeetCode刷题——二叉树二叉树定义二叉树遍历前序遍历(根左右)中序遍历(左根右)后序遍历(左右根)二叉树定义struct TreeNode{ int val; TreeNode* left; TreeNode* right; TreeNode(int x):val(x),left(nullptr),right(nullptr){} TreeNode(int x,TreeNode* left,TreeNode* right):val(x),left(left),right(left){}

2021-10-05 22:27:00 104

原创 LeetCode刷题——单调栈

LeetCode刷题——单调栈每日温度下一个更大元素 I下一个更大元素 II每日温度题目链接题意:请根据每日气温列表 temperatures ,请计算在每一天需要等几天才会有更高的温度。如果气温在这之后都不会升高,请在该位置用 0 来代替。思路:单调栈,使用栈s1存储温度,栈s2存储下标,(两个栈其实可以合并为一个,存下标就可以),当栈不为空且当前温度大于栈顶温度,则ans[s2.top()]=i-s2.top(),然后pop栈顶元素。class Solution {public:

2021-09-27 10:41:54 101

原创 LeetCode刷题——栈和队列2

LeetCode刷题——栈和队列2逆波兰表达式求值滑动窗口最大值前 K 个高频元素逆波兰表达式求值题目链接题意:根据逆波兰表示法(后缀表达式),求表达式的值。思路:一般a+b表达式是中缀表达式的形式,ab+就是后缀表达式的的形式。遍历字符串,用栈存数字,遇到运算符的时候,对栈顶部的两个元素进行相应的操作,弹出这两个数字,将他们的结果存入栈中,直到遍历结束,最后栈顶为表达式计算结果。class Solution {public: int evalRPN(vector<string

2021-09-23 22:40:07 76

原创 LeetCode刷题——栈和队列1

LeetCode刷题——栈和队列1用栈实现队列用队列实现栈有效的括号删除字符串中的所有相邻重复项用栈实现队列题目链接题意:用栈实现队列。思路:栈是先进后出,队列先进先出。使用两个栈,一个栈完成push功能,一个完成pop功能,当push时,直接加入s1,但pop时,判断s2是否为空,为空则将当前s1的所有元素,按pop顺序放入s2,再pop s2栈顶。如果不为空直接pop s2栈顶。class MyQueue {public: /** Initialize your data str

2021-09-21 16:47:09 122

原创 LeetCode刷题——字符串2

LeetCode刷题——字符串2实现 strStr()重复的子字符串实现 strStr()题目链接题意:找子字符串出现的第一个位置。思路:遍历字符串,判断当前位置i的字符是否等于子字符串的第一个字符并且i+l2-1位置的字符是否等于子字符串的最后一个字符,l2为子字符串的长度,如果头尾都相等,再用str.substr()截取字符串的这段字符,和子字符串比较是否相等,相等则得到答案。class Solution {public: int strStr(string haystac

2021-09-21 08:06:01 58

原创 LeetCode刷题——字符串1

LeetCode刷题——字符串1反转字符串 II剑指 Offer 58 - II. 左旋转字符串反转字符串 II题目链接.题意:给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。如果剩余字符少于 k 个,则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。思路:题目要求每2k个字符要进行一次反转。用l来记录字符串的长度,l>0作为循环条件,每反转一次l=l-2k,m+1

2021-09-16 11:24:43 80

原创 LeetCode刷题——哈希表1

LeetCode刷题——哈希表1有效的字母异位词两个数组的交集快乐数两数之和有效的字母异位词题目链接.题意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。思路:对两个字符串进行排序,比较排序之后的字符串是否相等,相等则互为字母异位词。class Solution {public: bool isAnagram(string s, string t) {

2021-09-12 11:44:28 116

原创 数据库学习笔记1

数据库学习笔记关系数据库和非关系数据库数据库系统的结构关系数据库和非关系数据库关系数据库(oracle,mysql)建立在关系模型基础上。关系模型指的就是二维表格模型。而一个关系型数据库就是相互有关联关系的表的集合。非关系数据库(redis)建立在非关系模型基础上,非关系模型:列模型,键值对模型(redis),文档类模型。数据库系统的结构三级模式:视图(数据):某种表现形式下表现出来数据库中的数据。模式:所观察到数据的结构信息。外模式(用户模式-局部),概念模式(逻辑模式

2021-09-11 17:45:15 170

原创 LeetCode刷题——链表2

LeetCode刷题——链表2删除链表的倒数第 N 个结点链表相交环形链表 II删除链表的倒数第 N 个结点题目链接.题意:给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。思路:遍历链表,得到链表长度,计算倒数第n个节点是正序的第几个节点,然后遍历删除该节点(暴力)。class Solution {public: ListNode* removeNthFromEnd(ListNode* head, int n) { ListNode * dum

2021-09-11 15:51:19 123

原创 LeetCode刷题——链表1

LeetCode刷题——数组1链表定义移除链表元素链表定义单链表struct ListNode { int val; ListNode* next; ListNode(int x): val(x),next(nullptr){}};双链表移除链表元素题目链接.题意:删除链表中所有满足 Node.val == val 的节点,并返回新的头节点 。关键:如果删除头节点,怎么处理。思路:使用一个虚拟头节点指向头节点class Solution {public:

2021-09-10 13:16:12 124

原创 LeetCode刷题——数组2

系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例

2021-09-08 22:12:53 76

原创 LeetCode刷题——数组1

LeetCode刷题——数组1二分查找移除元素有序数组的平方二分查找题目链接.题意:在一个有序数组中,查找指定值。二分查找就是一半一半的进行搜索查找。关键:边界问题,区间可以分为左闭右闭和左闭右开,对应不同写法。思路:`//左闭右闭int i=0,j=size(nums)-1;while(i<=j){ int m=i+(j-i)/2;//防止溢出 if(target==nums[m]) return m; if(target>nums[m]) i=m+1;

2021-09-07 20:12:08 89

空空如也

空空如也

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

TA关注的人

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