自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

度窝-笔记

路遥知马力,走心生活

  • 博客(6)
  • 收藏
  • 关注

原创 树与图在索引上的区别

树与图在索引上的区别以下内容来源于,利用并查集求解图是否有环,这道算法题的理解。声明:树是图的一个子概念,因此,这里声明下文的图是指非树的图,就是特指不是树的图。树与图在节点与路径上的区别。树和图的区别体现在节点特征上,树节点自顶向下角度看,只会被一个父节点指向,自底向上角度看,只会被指向只一个父节点。而图节点无论如何都可以是一个以上。用哈希表来表示树树的结构可以用哈希表表示,利...

2020-04-22 18:35:11 870

原创 防御性编程的两种手段之一篡改用户输入

非防御性编程:不做边界判断,不假设用户输入会出现极端情况。说白一点就是写代码没有考虑边界。防御性编程:考虑代码有极端情况,以及有边界存在。防御性有两种手段:1.一个是利用if语句将外部用户输入进行检查,或者实时对用户变量进行检查,确保任何参与外部数据计算的过程变量都是合法的。这种做法就是会产生很多if。2.另一种手段,就是修改输入,使其不再可能出现异常情况,常见的做法就是拷贝用户输入,然后...

2020-04-20 19:58:23 236

原创 【极小化极大的应用】如何求解象棋游戏最快赢法

写在前面本文为个人手记,是对设计各种【极小化极大算法类型博弈游戏】的设计思路的一个白话总结。开始自言自语由于象棋的步数比较多,走法也比较多,所以无法把所有走法都枚举。只能在给定的棋局里面,遍历可能的走法,遍历的深度会受限于计算力,所以通常都会固定为7层或者14层(根据算力决定)。然后利用极小化极大算法,再7步里面找出评分最高的那一步。(评分规则决定了算法的智慧程度,这种评分一般都由象棋高...

2020-04-18 16:06:05 662

原创 链表的角度看待二叉树

链表的角度看待二叉树链表节点的本质就是一种带“一个同类指针”的对象。二叉树节点的本质就是一种带“两个同类指针”的对象。为了不干扰我们对核心问题的研究。不考虑“不允许环形指向”这个约束。我们很少为链表建立栈实现遍历,因为专门为链表建立辅助栈的利用率不高,容易造成空间O(n)的浪费。而我们经常会为二叉树,建立辅助栈,辅助栈的长度等于数的深度。我们可以把二叉树看成多个...

2020-04-13 10:24:09 133

原创 利用二叉树前序和后序遍历序列的相似性质巧妙实现后序遍历迭代算法

前序遍历是后序遍历的准镜像算法。无论是从递归的角度看,还是迭代的角度看。都是!我们怎么定义准镜像算法?就是通过微调原来前序遍历的定义后,再进行镜像操作。//看一下如下代码框架://递归前后序遍历// 递归前序遍历recursive(root) { if(root == null) { return ; } list.add(root.val);...

2020-04-13 10:22:16 1297

原创 关于排序算法的随手记

递归首先排序算法还是栈实现排序算法都存在空间复杂度问题。另外就是插入排序对于原本已经有序的数组排序效率接近n,对于乱序的排序则反而接近n^2.希尔排序(步长排序)就是先通过步长将原数组分为很多小组先调整出顺序性,然后再最后进行插入排序。其利用的就是插入排序对有序数组效率高的性质来设计的。归并排序也被叫做二叉树排序,因为他是完全二叉树自底向上的排序过程。(有点像线段树)快速排序...

2020-04-05 22:40:03 155

空空如也

空空如也

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

TA关注的人

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