- 博客(33)
- 收藏
- 关注
原创 Day27-两道想破脑袋的[回溯]题目
排序,重复的元素一定不是排好序以后相同的连续数组区域的第 1 个元素。个结点,因为数值相同的第 1 个结点已经搜索出了包含了这个数值的全部结果. **都知道组合问题可以抽象为树形结构,那么“使用过”在这个树形结构上是有两个维度的,一个维度是同一树枝上使用过,一个维度是同一树层上使用过。回看一下题目,元素在同一个组合内是可以重复的,怎么重复都没事,但两个组合不能相同。那么问题来了,我们是要同一树层上使用过,还是同一树枝上使用过呢?,同一树枝上的都是一个组合里的元素,不用去重。
2023-01-04 10:11:35
263
原创 Day25-[回溯算法]ans.append(path[:])哟
可以改进: backtrack直接传入当前的sum,不用反复调用sum(path)Day25-[回溯算法]ans.append(path[:])哟。
2023-01-04 10:08:42
115
原创 Day23-二叉树终于告一段落了
前中后序 递归/迭代[使用栈Stack]层序遍历[使用队列]二叉树的属性:提纲挈领: 分情况讨论时,5种情况: 1) root为None;2) 左子树None;3) 右子树None;4) 左右子树皆None;5) 左右子树皆不None;二叉树:是否对称递归:后序,比较的是根节点的左子树与右子树是不是相互翻转迭代:使用队列/栈将两个节点顺序放入容器中进行比较二叉树:求最大深度递归:后序,求根节点最大高度就是最大深度,通过递归函数的返回值做计算树的高度迭代:层序遍历。
2023-01-04 10:03:04
339
原创 Day22-[二叉树插入和删除]迭代遍历
Sol1 递归Sol2 迭代二叉树的单个节点增加,不需要改变原本二叉树的结构,只需要找到合适的null节点,插入即可.这里就把二叉搜索树中删除节点遇到的情况都搞清楚。
2023-01-04 09:57:19
364
原创 Day13-值得温故知新的[队列]应用问题
所以大家经常说的大顶堆(堆头是最大元素),小顶堆(堆头是最小元素),如果懒得自己实现的话,就直接用priority_queue(优先级队列)就可以了,底层实现都是一样的,从小到大排就是小顶堆,从大到小排就是大顶堆。缺省情况下priority_queue利用max-heap(大顶堆)完成对元素的排序,这个大顶堆是以vector为表现形式的complete binary tree(完全二叉树)。,因为优先级队列对外接口只是从队头取元素,从队尾添加元素,再无其他取元素的方式,看起来就是一个队列。
2023-01-04 09:51:19
145
原创 Day20-あなたの[二叉树]はとても上手です
按照105.106的思路,快速一遍过617. Merge Two Binary Trees可以直接在root1上操作节省空间.700. Search in a Binary Search Tree二叉搜索树是一个有序树:前序递归 & 前序迭代98. Validate Binary Search Tree中序迭代 有点难理解
2022-12-08 00:02:45
203
原创 Day18-恶魔低语: [递归&迭代], 两种方法掌握一下
一开始的朴素思想是, Bottom Left Node一定是一个左子树衍生的叶子结点. 但实际会有cur节点没有左子树,而右子树就成为了这一层的leftmost.终止条件只需要在depth 增加时, 更新叶子结点的取值即可.前序递归 & 层序迭代112. Path Sum前序递归: 一遍过好耶113. Path Sum II前序递归:一遍过好耶106. Construct Binary Tree from Inorder and Postorder Traversal前序和后序的共同特点,
2022-12-08 00:00:13
331
原创 Day17: 二叉树之路, 道阻且长啊
!!! 平衡二叉树的左右子树仍为平衡二叉树.A height balanced binary tree is a binary tree in which the height of the left subtree and right subtree of any node does not differ by more than 1 and both the left and right subtree are also height balanced.关于根节点的深度究竟是1 还是 0,不同的地方有不
2022-12-07 23:58:49
287
原创 Day16-[前序递归]&[层序迭代]:二叉树的两只拦路虎
二叉树深度:节点到根结点的距离. (每有一个节点 包含当前节点.) 越向下越大.二叉树高度:节点到叶子节点的距离. (每有一个节点 包含当前节点.) 越向上越大.求高度:后序遍历 左右中; 求深度: 前序遍历 中左右;求二叉树的最大深度,就是求最大高度. 把需要前序解决的问题,转换为后序的问题.层序迭代 & 后序递归这里展现一下,前序递归的回溯思想(重点关注,相较于上面的后序遍历,麻烦在哪里.)代码简化后:559. Maximum Depth of N-ary Tree两种方法: 层序 迭代 & 前
2022-12-07 23:57:09
290
原创 Day15-掌握了递归? 那我要考考你[迭代]
层序遍历 (使用队列实现)队列先进先出, 符合一层一层遍历的逻辑, 而是用栈先进后出适合模拟深度优先遍历也就是递归的逻辑.226. Invert Binary Tree中序遍历: 注意第二次依然要遍历左孩子,因为中间节点已经翻转了.101. Symmetric Tree2022.12.07 rewrite
2022-12-07 23:55:03
120
原创 Day14-走遍弯路,才知道人间正道是[递归]
二叉树Leetcode满二叉树定义:一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树。 也就是说,如果一个二叉树的层数为K,且结点总数是(2^k) -1 ,则它就是满二叉树。若设二叉树的深度为h,除第h 层外,其它各层(1~h-1) 的结点数都达到最大个数,第h 层所有的结点都连续集中在最左边,这就是完全二叉树。前面介绍的树,都没有数值的,而二叉搜索树是有数值的了,二叉搜索树是一个有序树。平衡二叉搜索树:又被称为AVL(Adelson-Velsky and Landis)树,且具有以下
2022-12-07 23:43:02
265
原创 Day9-[KMP]难不倒我
要不要使用库函数:如果库函数仅仅是 解题过程中的一小部分, 并且你已经很清楚这个库函数的内部实现原理的话, 可以考虑使用库函数.
2022-12-01 04:07:02
178
原创 Day7-[N数相加],我只选双指针
双指针可以使时间复杂度 divide by N (本题中由O(N的3次方)下降为O(N的平方)重做:进阶在第一层和第二层考虑剪枝。
2022-12-01 04:03:10
64
原创 Day4-除了142的环形链表,链表觉得很chilling
一句真言: 在需要变动的节点前一位,进行指针操作.虚拟头节点的作用: 单链表加上虚拟头节点之后,无论单链表是否为空,头指针始终指向头结点,因此空表和非空表的处理也统一了,方便了单链表的操作,也减少了程序的复杂性和出现bug的机会。不带头结点的链表对首元结点、中间结点分别处理等;而带头结点的链表因为有头结点,首元结点、中间结点的操作相同 ,从而减少分支,使算法变得简单 ,流程清晰。以后统一链表中元素 19, 删除链表的倒数第N个节点双指针的经典应用,如果要删除倒数第n个节点,让fast移动n步,然后让f
2022-11-23 06:02:56
92
原创 2020-11-15
但如果要使用lambda一行表示if多条件,则:lambda x: 语句1 if 条件1 else ( 语句2 if 条件2 else 语句3 )
2020-11-16 01:19:19
66
原创 2020-11-15
x假设存在DataFrame存在两列数据col1和col2:df = pd.DataFrame()def function1(row):""" 公共函数 """return row.col1+row.col21. 直接对series使用apply()方法def main1():""" 按照series使用apply"""df['new_col'] = df['col'].apply(lambda x: function1(row))2.直接对dataframe使用
2020-11-16 01:15:28
69
转载 MATLAB中的分类器
目前了解到的MATLAB中分类器有:K近邻分类器,随机森林分类器,朴素贝叶斯,集成学习方法,鉴别分析分类器,支持向量机。现将其主要函数使用方法总结如下,更多细节需参考MATLAB 帮助文件。设 训练样本:train_data % 矩阵,每行一个样本,每列一个特征 训练样本标签:train_label % 列向量 测试样本:test_data...
2019-01-22 20:32:49
871
原创 matlab 元胞自动机
用MATLAB实现元胞自动机的事例file 1:life.m%% 初始化m = 50;X = zeros(m,m);X(25,25) = 1; n = [m 1:m-1]; e = [2:m 1]; s = [2:m 1]; w = [m 1:m-1]; % 绘制初始图形 [i,j] = find(X); figure(gcf);...
2018-08-25 12:23:26
12064
5
原创 余弦距离、欧氏距离和杰卡德相似性度量的对比分析
1、余弦距离余弦距离,也称为余弦相似度,是用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小的度量。向量,是多维空间中有方向的线段,如果两个向量的方向一致,即夹角接近零,那么这两个向量就相近。而要确定两个向量方向是否一致,这就要用到余弦定理计算向量的夹角。余弦定理描述了三角形中任何一个夹角和三个边的关系。给定三角形的三条边,可以使用余弦定理求出三角形各个角的角度。假定三角形的三条边为a,...
2018-05-19 12:29:14
268
转载 常见的距离算法和相似度(相关系数)计算方法
摘要:1.常见的距离算法1.1欧几里得距离(Euclidean Distance)以及欧式距离的标准化(Standardized Euclidean distance)1.2马哈拉诺比斯距离(Mahalanobis Distance)1.3曼哈顿距离(Manhattan Distance)1.4切比雪夫距离(Chebyshev Distance)1.5明可夫斯基距离(Minkowski Dista...
2018-05-19 12:18:48
9182
转载 关于显著性检验,你想要的都在这儿了!!(基础篇)
关于显著性检验,你想要的都在这儿了!!(基础篇)https://www.cnblogs.com/hdu-zsk/p/6293721.html 无论你从事何种领域的科学研究还是统计调查,显著性检验作为判断两个乃至多个数据集之间是否存在差异的方法被广泛应用于各个科研领域。笔者作为科研界一名新人也曾经在显著性检验方面吃过许多苦头。后来醉心于统计理论半载有余才摸到显著性检验的皮毛,也为显著性检验理论之精妙...
2018-05-05 16:04:30
70010
7
转载 [转载]学术论文投稿第五弹——如何写Discussion
文章中的讨论部分一般比其它章节难定义,可以说是最难写的部分。因此,许多投稿的文章本身的数据是真实有效、令人产生兴趣的,但都会因为糟糕的讨论部分而被杂志编辑拒稿。甚至其数据的真正内涵可能会完全被讨论部分的错误解释而歪曲模糊,带来拒稿的风险。1.讨论部分的内容目前来说,较多文章的讨论部分长而详细。就像Doug Savile说的“有时候,我认为这就是一个所谓的乌贼式模式:作者对自己的结果或者推理过程不自...
2018-04-26 20:31:32
1499
转载 [转载]学术论文投稿第三弹——如何写Material & Method
1.Material & Method的重要性一般来说,文章的前言会提及你所使用的实验方法,甚至有时会强调使用该方法的原因,随后的部分就是对实验方法、材料以及过程进行详述。文章的实验材料、方法部分通常使用的是过去时态,写这一部分的主要目的就是描述整个实验的设计以及让看了你文章的同行能够重复出该实验,证明实验的可行性。当然了,其也可能提供给读者一些新的发现或者进一步研究的切入点。对于一些读者...
2018-04-26 20:29:08
2010
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人