- 博客(28)
- 收藏
- 关注
原创 【算法】leetcode106. Construct Binary Tree from Inorder and Postorder Traversal-从中序与后序遍历序列构造二叉树-go
给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树。相似,后序遍历的规律是[左子树,右子树,根节点],根节点总是在后序列表的最后面,所以可以从后序列表中找到根节点,然后再根据根节点,从中序遍历列表中找到左子树和右子树的长度。具体算法流程是用分解的问题的方式,后序列表的最后元素赋值根节点,然后递归的方式构建左子节点和右子节点。
2023-09-28 09:05:04 65
原创 【算法】leetcode105. Construct Binary Tree from Preorder and Inorder Traversal从前序与中序遍历序列构造二叉树
这题给的是前序遍历和中序遍历。前序遍历的遍历顺序是根->左子树->右子树,中序遍历的遍历顺序是左子树->根->右子树。所以根据前序遍历找到根节点后,再从中序遍历中找到根的位置,从而知道左子树和右子树的大小,再根据大小,获得前序遍历的左子树和右子树,递归遍历这个过程。给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。是不变数组,用双指针。preorder 保证 为二叉树的前序遍历序列。
2023-09-26 10:14:26 56
原创 【算法】654. Maximum Binary Tree 最大二叉树 go
用分解问题的方法,分别构造左右子树。从逻辑上顺序讲就是,先从数组中找到最大值和最大值索引,用最大值构造节点,然后用最大值索引左边值递归地构造左子节点,最大值索引右边值递归地构造右子节点。这个解法构造了一个递归函数,每次传入数组和左右指针。这个方法不用每次传入一个新数组,减少了内存消耗,但是在go中相比题解1并没有什么性能提升,甚至有些下降。递归地在最大值 左边 的 子数组前缀上 构建左子树。递归地在最大值 右边 的 子数组后缀上 构建右子树。创建一个根节点,其值为 nums 中的最大值。
2023-09-25 09:55:58 59
原创 【算法】leetcode114.Flatten Binary Tree to Linked List 二叉树展开为链表
方案2是用分解问题的思路。然后如果存在左子节点,就让左子树最右边的节点指向根节点的右子节点,再让根节点的右边指向左子节点,最后让根节点左子节点为空。方案1是前序遍历一遍树,在遍历时把树的节点加入一个数组中。然后遍历一遍数组,让每个节点的左子节点都是空,右子节点是下一个节点。由于操作的都是指针,所以都会反应到root上。展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null。展开后的单链表应该与二叉树 先序遍历 顺序相同。
2023-09-22 17:04:22 81
原创 【技巧】python中的numpy(4)——坐标变换和内置函数
转置是一种特殊的坐标变换,ndarray中有坐标变换方法swapaxes,输入一对数,调换这对数的坐标。numpy中有很多内置的计算函数,这些函数是逐元素计算的,并且做了ndarray的计算加速。numpy中有内置的随机数生成模块。使用T方法对矩阵做转置。
2023-09-18 16:00:49 353
原创 【技巧】python中的numpy——数组的索引和切片(3)
names=="Bob"会触发广播机制,是Bob的True,不是Bob的False,data通过布尔值索引,返回True对应的向量。这是由于numpy是面向大数据计算的,频繁复制对内存消耗较大。一维数组索引方式与切片方式与列表类似,并且也是前闭后开的。多维数组有多种索引方式,可以用嵌套列表的方式索引。因此arr3d的形状是2*2*3的。也可以用’,'简化索引,有点像坐标。数组切片时默认是引用,而不是复制。布尔值索引也可以和坐标索引结合。数组的形状是自外而内的,例如。数组的索引中也可以使用切片。
2023-09-18 14:38:52 87
原创 【算法】leetcode116. Populating Next Right Pointers in Each Node填充每个二叉树节点的右侧指针
这种解法抽象了一个节点,把第一层的root.Left和root.Right看作一个节点,然后每层二叉树成为三叉树。说比较抽象,看一下下图。给定一个完美的二叉树,其中所有的叶子节点都在同一层级上,并且每个父节点都有两个子节点。将每个next指针指向其右侧的下一个节点。如果没有右侧的下一个节点,则应将next指针设置为NULL。从图1抽象为,图2,那就是遍历一个三叉树,同时要记得在抽象的节点时,把遍历的节点连起来。看到题目的第一反应是遍历每一层,将每层节点关联起来。最初,所有的next指针都被设置为NULL。
2023-09-18 11:11:35 26
原创 【观点】经济下行是规律也是机遇
此外,市场的不稳定性可能为创业者和投资者带来新的机会,因为他们可以以更低的成本进入市场,并在下行期间寻找低估值的资产。此外,下行时期政府通常采取刺激措施,鼓励投资,为企业提供支持,这也可以为经济复苏创造机遇。经济下行并不是一时的偶然,而是经济发展中不可避免的一部分。此外,提升技能和知识,不断学习适应新环境也是应对下行的关键。在经济发展的长河中,经济下行是一种常见的规律。这篇文章将探讨经济下行的规律和潜在机遇,并强调在这个过程中如何积极应对和创造价值。总之,经济下行虽然带来了一系列的挑战,但也蕴含着机遇。
2023-09-15 23:40:41 60
原创 【观点】自由项目接单 vs. 公司上班:职业选择的利与弊
原来这位群友他是在某知名外包公司工作,而一旦手上的项目结束了,他可能就会回外包公司,然后如果没合适的项目,那公司可能就会派他去项目坟场,逼他辞职。并且这同时也引起了我的一些畅想,因为其实我比较喜欢忙一阵完成一个项目后再歇一段时间的工作方式,所以在思考如果工作不每天上班打卡,而是自由的在市场上接项目的方式工作会怎么样。接项目的方式也会有更多的可能去尝试各类任务,这是在公司中,有着固定岗位的人比较难体验的。接项目的话,甲方更多关注你完成项目的能力,而不会在意个人的性格之类的软能力。
2023-09-15 23:38:31 148
原创 【技巧】python中的numpy(2)——数组类型和计算
使用string_类型时要小心,因为固定长度的字符串可能在没有警告的情况下截断输入。数组可以使用向量计算的方式。维度相同的数组之间的计算是逐元素的。可以转换为其他数组的数据类型。
2023-09-15 23:15:00 112
原创 【技巧】python中的numpy(1)——数组的创建
学习自numpy是python数值计算的重要基础,很多数值计算的包用numpy数组作为标准的数据形式。numpy的很多知识在pandas中也适用。
2023-09-15 22:15:45 84
原创 【外刊】读《17个改变我人生的问题》(1)
作者在开发出了药品后获得了巨大的成功,但是代价是不得不没日没夜工作,同时也失去了谈婚论嫁的女友。于是作者开始反思,他需要的不是更多的钱,而是更多的时间和可移动性;他想获得的不是世俗意义的成功,而是更开心的生活。于是作者计算了一下过上他理想生活所需要的目标月收入,发现其实不用那么多钱,所以作者就开始世界旅行了。。
2023-09-15 15:24:32 35
原创 【外刊】读《The 4-Hour WorkWeek》(1)
本书名为“每周工作四小时”,副标题名为“逃离朝九晚五,生活在任何地点并成为一名‘新富人’”。本书成书于2009年,书中主要讲述如何通过“DEAL”方法提升工作效率,从无止境的工作中解放出来,并能活得像一个百万富翁。书中阐述的观点和方法在国外可能已经不再新鲜,但对我而言确实是令人激动振奋的。本书也被称为“数字游民圣经”,本书作者的生活方式确实激励了一批人在之后的十几年从无止境的工作中解放出来,投身入更自由奔放的世界。
2023-09-15 13:26:31 81
原创 【算法】leetcode226. Invert Binary Tree
一开始被唬住了,这题其实蛮简单的,把每个节点的左右子节点对调一下就行。给定二叉树根节点,反转该树并返回根节点。
2023-09-15 09:26:01 39
原创 【算法】leetcode543 二叉树的直径
这题,区别是最大深度这题是求最长路径上的结点数,在这题中,我们需要的是最长路径上的边数。解法一对每个树的每个结点都显式的求了一次最大深度,其实是很浪费的,因为求根节点最大深度的同时,已经递归地求过所有点的最大深度了。在这里我们定义全局变量max_diameter记录最大直径,在计算每个结点最大深度的同时,计算该结点的直径,同时更新最大直径。根据题目可以发现,所谓直径就是节点左边的最长路径+右边的最长的路径,二叉树的直径就是二叉树中所有点的最长直径。二叉树的直径是树中任意两个节点之间的最长路径的长度。
2023-09-11 17:12:24 66 3
原创 【观点】用游戏的心态过好生活
游戏的心态说着简单,而在现实中,我们往往会有各种顾及,例如,身边人的视线和观点,而不能充分的做自己想做的自己。但是,如果真想要快乐,那还是得有强大的自我,这是出自己外,无人可以给予的。希望我们都活成自己人生的主角,而不是别人生活中的NPC。
2023-09-11 13:57:34 44 1
原创 【外刊】读《30 Passive Income Ideas for 2023: Unlock Financial Freedom》
30种方法里有些比较新奇,有些老生常谈,总结下来主要还是有钱的靠钱生钱,没钱的靠流量打广告。通过这篇网站可以看到国外有比较方便的方式去将个人的设计和发明创造售卖变现,国内好像没有类似的平台,如果有类似的欢迎留在评论中,如果没类似的,那这也可能是个不错的创业方向。这里的大部分网站都是国外的,在国内可能不太适用,还有一部分是带有shopify的广告性质,主要可以从这篇文章中学习思路。
2023-09-11 11:06:56 83 1
原创 【技巧】在inscode中,用python调用gpt对话
本文说明了如何在inscode平台中,使用python调用inscode提供的chatgpt接口。
2023-09-08 13:41:45 67 1
原创 使用inscode部署一个streamlit app
有人贡献了streamlit模板,但问题是运行该模板后,我不知道如何访问生成的页面,因为给出的ip是无法访问的,并且inscode内置的浏览页面无法输入网址。我试了一下chatgpt-vue的模板,他在运行后会给定一个网址可以在外网访问,并自动弹出一个页面,这里留一个坑,如果以后我发现了怎么做到这点,就分享一下。因为无法实时调试,所以在线ide的功能就比较鸡肋,我得在自己的工作环境中调好代码再部署上去。新建应用很简单,只要点开快速开始,然后选择你需要的模板,就可以开始进行开发。,学不完,根本学不完TAT。
2023-09-04 16:23:00 88 1
原创 【外刊】读 《What Is Passive Income? 5 Ways To Earn It in 2023》
被动收入就是积累一定资产后的躺赚现金流。获得被动收入主要有出租、投资、产权、股票、商业、借贷五种方式。
2023-09-04 12:24:13 71 1
原创 知识的意义在于分享
人近两支,一无所长,或道善思,尤可用之。内心总盼着自己成为一个更有智慧的更好的人,可是对学习的热情总是时高时低、时有时无。我开始思考学习的意义:学以致用?知行合一?洞察世事?这些都是足够充分的支持我朝乾夕惕的理由,可是都无法燃起我内心的热情。经过短暂的思考,我想到,而知识的力量在于共享,而同时分享知识能增加学习的动力以及加强自身对知识的掌握,于是决定开始写博客记录自己的学习。博客主要记录计算机...
2019-12-23 01:06:28 799
转载 欢迎使用CSDN-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2017-10-19 22:36:58 110
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人