自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 安装Ansys Electronics2022出现ERROR 8,523报错的解决办法

把第三步中的win64中的这个文件复制,然后粘贴到 安装路径中的win64中,可能根据版本不一样命名方式也不一样,总之是粘贴到又很多文件的AnsysEM的文件夹的win64里面,就可以成功打开了。

2023-07-11 12:25:47 1187

原创 记录一下自己学习中遇到的问题

【代码】记录一下自己学习中遇到的问题。

2023-06-10 16:01:36 81

原创 C#/C++中static的总结(个人笔记)

这篇文章是总结整理static在C#/C++中的用法。

2023-05-20 17:22:26 158

原创 lc螺旋矩阵类问题

【代码】lc螺旋矩阵类问题。

2023-05-11 18:45:45 66

原创 c++指针中指针数组、数组指针、指针函数、函数指针等用法的理解与记录

这篇文章用来记录c++学习过程中遇到的指针方面的问题,会随着学习的深入逐渐补充修改。在对不同指针进行区分的时候,首先应该明白c语言中运算符优先级:C语言中,[]和()的优先级比 * 的优先级高。这表明了在进行运算的时候,要时刻注意优先级区分。

2023-05-09 12:43:48 58

原创 c++二维数组的创建与定义

采用了指针数组的方法,指针数组指的是一个数组,数组内部有指针。for循环表示遍历dp数组里的每一个元素(元素类型为int*),并申请大小为4的一维数组。采用了数组指针的方法,数组指针是指针,指向数组。dp为数组指针,指向数组int[5]。在c语言中,二维数组定义可以是静态二维数组,也可以是动态二维数组。malloc申请二维数组的方式:首先使用指针数组int*,并在此基础上再开辟4个内存空间。首先是静态数组的创建:当我们创立一个三行四列的二维数组的时候,我们可以用以下几种方法。

2023-05-07 15:40:47 1071

原创 贪心算法leetcode题目整理

思路:我们不知道跳几步,也不知道按照当前的最大步数跳过去是不是能满足要求,局部最优解是每到一个地方跳最大,也就是获取最大覆盖范围,整体最优是最后得到整体的最大覆盖范围。所以真正解题的时候,要从覆盖范围出发,不管怎么跳,覆盖范围内一定是可以跳到的,以最小的步数增加覆盖范围,覆盖范围一旦覆盖了终点,得到的就是最小步数!如果移动下标达到了当前这一步的最大覆盖最远距离了,还没有到终点的话,那么就必须再走一步来增加覆盖范围,直到覆盖范围覆盖了终点。你的目标是使用最少的跳跃次数到达数组的最后一个位置。

2023-03-06 21:41:23 77

原创 二叉搜索树类题目

那么我们遍历数组的时候,同时考虑前后是否一致,如果一致则count+1,最后统计count谁最大即可,但是这里还有两个要注意的地方,一个是count可能存在一样大的,另一个是count的最大值是不断改变的,如果最大值变大,就要重新更换最大值,并且清零之前的内容。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;

2023-02-26 19:23:13 107

原创 最大二叉树

题目中说了输入的数组大小一定是大于等于1的,所以我们不用考虑小于1的情况,那么当递归遍历的时候,如果传入的数组大小为1,说明遍历到了叶子节点了。确立参数和返回条件:由于二叉树是遍历整棵数,参数传入的是存放元素的数组,返回该数组构造的二叉树的头结点,返回类型是指向节点的指针。思路:找到数组中的最大值,然后取最大值左边的数组为左子树,最大值右边的数组为右子树,所以我们自然而然的想到了使用递归的方法。我们要考虑左子树右子树的单层递归逻辑,这里有三个任务,首先找到最大值,然后确立最大值左右数组,再进行递归。

2023-02-25 15:39:56 29

原创 从中序(前序)与后序(中序)遍历序列构造二叉树

思路:中序和后序遍历分别是左中右和左右中,我们会发现可以先从后序遍历的最后一个节点寻找根节点root,然后从中序遍历找到这个根节点,并从这个节点进行切割,其左右节点分别是左右孩子,然后切割后序数组,这样完成了某层的运算后,进行递归。

2023-02-24 16:53:04 49

原创 路径总和(1和2)

做这道题之前首先提到一点,那就是递归什么时候需要返回值,什么时候不需要返回值,可以分为三类:要遍历整颗二叉树,同时不需要处理返回值,递归函数就不需要返回值(路径总和2)需要搜索整棵二叉树,同时还需要处理递归返回值,则递归函数就需要返回值(二叉树的最近公共祖先)只需要遍历部分二叉树,则递归一定需要返回值,因为遇到了符合条件的就要及时返回(路径总和1)

2023-02-23 22:48:10 30

原创 左叶子之和

思路:注意这道题目要求求左叶子的和,而不是左节点的和,更不是左边的和,所以不能使用默认的层序遍历去求左边的值,而是从父节点的角度去思考:左叶子有这样的特性,它的左右节点都是空的,同时它的父节点只有左节点!所以我们应该从父节点的角度去考虑。

2023-02-23 11:44:43 41

原创 对称二叉树

判断左右对称并不是左节点右节点,而是根节点的左右子树,节点的左右判断完后,要判断根节点的左右的子节点,详细的说也就是根节点的左节点的左节点(示例中的3)对比根节点的右节点的右节点(示例中的3),在对比根节点的右节点的左节点和根节点左节点的右节点(4),这个时候我们发现,我们想要判断每一层的这几个节点是否相等,但凡有不相等的就return false。此时才进入单层递归的逻辑,单层递归的逻辑就是处理 左右节点都不为空,且数值相同的情况。比较二叉树外侧是否对称:传入的是左节点的左孩子,右节点的右孩子。

2023-02-19 18:50:10 36

原创 翻转二叉树(多种思路)

返回值的话其实也不需要,但是题目中给出的要返回root节点的指针,可以直接使用题目定义好的函数,所以就函数的返回类型为TreeNode*。(引用代码随想录卡哥的话,个人觉得解释的很清楚)思路:这里注意函数返回二叉树,所以不需要提前设置return数列,直接使用root即可,思路就是在每次要将左右节点入栈之前进行swap。参数就是要传入节点的指针,不需要其他参数了,通常此时定下来主要参数,如果在写递归的逻辑中发现还需要其他参数的时候,随时补充。思路:和迭代法差不多,就是在左右节点入队之前进行swap。

2023-02-19 17:29:52 150

原创 构造函数初始值(List和TreeNode)

【代码】构造函数初始值(List和TreeNode)

2023-02-16 23:15:38 88

原创 栈与队列leetcode刷题

题意其实就像我们在写代码的过程中,要求括号的顺序是一样的,有左括号,相应的位置必须要有右括号。思路:因为题目中提到反复删除重复项,还是考虑使用栈,遍历字符串入栈,判断字符串遍历的位置是否和栈内相等,如果相等就pop,如果不等就入栈。每个运算对象可以是整数,也可以是另一个逆波兰表达式。给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。根据 逆波兰表示法,求表达式的值。

2023-02-15 22:04:28 73

原创 leetcode刷题字符串类问题

字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。输入: s = "abcdefg", k = 2。输入: "a good example"输入: "the sky is blue"输出: "umghlrlose"输出: "cdefgab"

2023-02-11 16:53:21 37

原创 哈希表常见题目

思路:只有小写字母,可以考虑使用数组的方法来进行,也就是使用record数组进行统计,s字符串出现字母,相应字母++,t字符串出现同样的字母,相应字母--;当然还有两个问题,一个是字母对应的acs码不知道,可以使用“字母i-"a""的思路,这样我们通过差值将asc码转换为数值。然后遍历另一个数组,如果能在这个无序set中,找到另一个数组中的元素,那么这个元素就是两个数组的公共元素了。给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。

2023-02-07 23:10:32 214

原创 leetcode双指针法常见题目

移除元素给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。思路:通过两个指向均为第零个数值的双指针的不同快慢变化来进行选取删除数组,此题考验了双指针同一个开头的用法。移除元素给你一个升序排列的数组 nums ,请你原地删除重复出现的元素,使每个元素只出现一次,返回删除后数组的新长度。元素的相对顺序应该保持一致。思路:和上一题一样,使用快慢指针,快指针先行遍历,遇到了不同的就把值赋值给慢的,注意赋值后快慢指针加一。

2023-02-06 00:34:19 42

原创 数组leetcode常见题目(二分查找篇)

二分查找给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。思路:简单的二分查找,通过left和right两侧的值求中间值,判断中间值和target的大小比较。注意点有两个,我本人喜欢采用左闭右闭的写作方法:left = 0;当target和mid不相等的时候,让left = mid+1,right= mid - 1。

2023-02-05 23:41:43 44

原创 链表经典题目

举个例子说,链表删除倒数第四个节点,也就是链表[12345678]里面的5,这个时候我们使用一个快慢指针,分别指向1和指向6,这样当指向6的指针指向空的时候,指向1的指针指向4,就可以删除第4-> next个数值,也就是删掉5。定义一个快慢指针,快的走两步,慢的走一步,快的和慢的一定会在环形区域相遇(前提是有环形区域),然后再相间的地方定义快的指针,从头结点定义慢的指针,两个一起遍历,相遇的地方就是我们要找的入环的第一个节点。给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。

2023-02-05 00:17:33 113

原创 移除链表元素和设计链表

【代码】移除链表元素和设计链表。

2023-02-04 00:54:38 35

原创 二叉树所有路径

一开始看到这道题的时候,发现有几个地方需要注意,,与以往的遍历不同,这道题需要返回字符串,也就是使用string的转化,同时考虑到遍历到叶子节点的时候,是需要返回的,也就是回溯。遍历顺序是根节点到叶子节点,所以考虑使用前序遍历。其次是确定终止条件,在这道题中,当遍历到叶子节点的时候结束,也就是说当node的左孩子有孩子均为空的时候结束遍历,然后进行path的转换和数组变换。肯定是不需要的,所以我们统计的时候统计到[i-1]个path,最后一个由我们手动输入。说明: 叶子节点是指没有子节点的节点。

2023-01-30 17:44:49 27

原创 平衡二叉树(递归)

这个时候我们发现和之前的深度计算有所区别,之前使用层序遍历解决深度问题的时候,我们都是从根节点出发逐渐增加depth的值,但是这道题的根节点是不断改变的,也就是我们遍历的每一个节点都会看做根节点,然后判断他的子节点(如果有)差距是否大于1,所以无法应用层序遍历进行,需要考虑递归或迭代。如果考虑递归迭代 ,我们发现后序遍历是我们所需要的,因为我们要求某节点的高度,都是从叶子节点入手,最后考虑中间节点,故采用后序遍历的”左右中“是我们所需的。二叉树节点的高度:指从该节点到叶子节点的最长简单路径边的条数。

2023-01-29 21:27:52 110

原创 完全二叉树节点个数

这道题本质上是要遍历左右二叉树,然后进行统计。用递归解决的话,可以在递归中顺便定义左孩子和有孩子的数量,然后进行求和(不要忘记还有一个根节点)如果用迭代的方法解决的话,则可以考虑在层序遍历中的每一层循环中统计节点数目。给出一个完全二叉树,求出该树的节点个数。用完全二叉树方法比较复杂,所以考虑用简单的递归和。迭代进行遍历并求知。

2023-01-29 18:39:37 29

原创 二叉树的修改与构造

101. 对称二叉树。

2023-01-29 13:13:26 45

原创 二叉树层序遍历与相应题目

思路如下:我们都知道size大小是某一层进入队列的值的多少,也就是,size = 5的时候,说明这一层有5个进入队列,那么当遍历到地5-1个,也就是i = size - 1;思路:每一行中找到最大值,则需要层序遍历后,在每一层进行比较,具体思路可以是:创建一个极小值INT_IN,然后遍历node的值和极小值做比较,最后选出最大的。给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。思路:针对这个题目,我们的思路也很明确,那就是用sum统计每一层的每个节点的和,然后。

2023-01-29 12:46:39 41

原创 迭代法遍历二叉树

和递归法不同,迭代法的中序遍历并不是前序遍历修改顺序,原因很简单,前序遍历的顺序是中左右,先遍历中节点然后是左右,正好我们入栈顺序也是中节点先进去,无非是左右节点交换进去的顺序以保证出栈的顺序相反。

2023-01-28 21:12:02 40

原创 二叉树遍历方式——递归法

确定递归参数和返回值,在具体代码中实现,在本案例中,我们要用一个数组的方式来存储遍历的节点,所以参数需要用数组vector来存放数值,由于vec需要进行改变,所以引用的时候需要注意物理引用格式。递归单层逻辑:前序遍历法是中左右进行遍历,也就是先取中节点的数值,然后取左节点和右节点的数值。中序遍历则是左中右的方式,也就是先去左节点再去中间节点和右节点,同理,后序遍历是先取左节点,然后右节点,最后中间节点。在leetcode刷题中,二叉树的遍历方法可以简单的分为深度优先遍历和广度优先遍历。确定单层递归的原理。

2023-01-28 11:11:31 245

空空如也

空空如也

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

TA关注的人

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