自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Viper的程序员修炼手册

每日一练,终成Viper!

  • 博客(25)
  • 资源 (2)
  • 收藏
  • 关注

原创 微软最新开源工具PowerToys,win10使用效率瞬间翻倍!!

前言我偶尔用来听一些有声节目,前几天听到一个节目讲到萨提亚·纳德拉这个现任CEO,依靠他准确的把握方向使得本来错过移动互联、定位失败、逐渐显露出颓势的微软重新获得了生机,市值也一度达到新高。的确,作为一名开发者,对于微软的潜移默化之中的转变关注更为密切。无论是操作系统,还是开发工具,我们都无法离开这个全球最大的电脑软件提供商。如果3年前提到开源、免费,我肯定无法联想到微软。近几年,我逐渐的开始感受到微软已经从当初那个僵化、远离用户的公司开始变得贴近用户、拥抱潮流和变化。Windows 10加入Lin

2020-06-25 11:18:47 37507 2

原创 Linux命令大全(排版清晰!!持续更新!!非常详细)

前言最近在使用Linux的时候,发现有很多命令不太会。在csdn查阅命令大全的时候,发现很多文章都没有很好的排版,于是写一篇文章,希望能够帮助到大家!一、基本操作命令首先先来几个热键,非常方便,一定要记住Tab按键—命令补齐功能Ctrl+c按键—停掉正在运行的程序Ctrl+d按键—相当于exit,退出Ctrl+l按键—清屏1.1 关机和重启1.关机命令:shutdown****其他****关机命令:halt,poweroff取消定时关机命令:shutdown -c2.重启命令:reb

2020-06-24 00:00:16 63432 88

原创 Ubuntu20.04安装之后的优化(更换国内源,安装VMtools,安装软件等)

文章目录简介更换国内源1.图形界面操作 - 适用于desktop版本2.终端操作-适用于Server & Desktop版本安装VMtools删除某些无用(不常用)软件更新系统软件安装简介在安装完Ubuntu之后,其实有很多可以优化的地方,来增加我们的使用体验,这里介绍一些优化的步骤。更换国内源介绍两种方法1.图形界面操作 - 适用于desktop版本在桌面右上角点击打开菜单,点击设置选项。在设置选项右侧下拉找到“关于”,点击 Software Updates。在Ubuntu软件

2020-06-02 16:03:04 28806 2

原创 【LeetCode】648.单词替换(前缀树多种解法,java实现)

题目链接分析方法一:前缀哈希【通过】思路遍历句子中每个单词,查看单词前缀是否为词根。算法将所有词根 roots 存储到集合 Set 中。遍历所有单词,判断其前缀是否为词根。如果是,则使用前缀代替该单词;否则不改变该单词。class Solution { public String replaceWords(List<String> roots, String sentence) { Set<String> rootset = new Hash

2020-06-29 21:46:23 381

原创 【LeetCode】429.N叉树的层序遍历(图文详解,三种方法,java实现)

题目链接:分析方法一:利用队列实现广度优先搜索我们要构造一个 sub-lists 列表,其中每个 sub-list 是树中一行的值。行应该按从上到下的顺序排列。因为我们从根节点开始遍历树,然后向下搜索最接近根节点的节点,这是广度优先搜索。我们使用队列来进行广度优先搜索,队列具有先进先出的特性。在这里使用栈是错误的选择,栈应用于深度优先搜索。让我们在树上使用基于队列的遍历算法,看看它的作用。这是你应该记住的一个基本算法。List<Integer> values = new Arr

2020-06-27 13:21:47 1183

原创 【LeetCode】589.N叉树的前序遍历(递归+迭代,java实现,详细分析)

题目地址:分析方法一:递归代码:class Solution { List<Integer> list =new ArrayList<>(); public List<Integer> preorder(Node root) { helper(root); return list; } private void helper(Node root){ if(root =

2020-06-27 11:36:03 1109

原创 二叉树合集(二):霍夫曼树(图文详解)

1 前言霍夫曼树是二叉树的一种特殊形式,又称为最优二叉树,其主要作用在于数据压缩和编码长度的优化。2 重要概念2.1 路径和路径长度在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路中分支的数目称为路径长度。若规定根结点的层数为1,则从根结点到第L层结点的路径长度为L-1。图2.1图2.1所示二叉树结点A到结点D的路径长度为2,结点A到达结点C的路径长度为1。2.2 结点的权及带权路径长度若将树中结点赋给一个有着某种含义的数值,则这个数值称为该结点的权。结点的带权

2020-06-25 10:35:30 5283

原创 二叉树合集(一):二叉树基础(含四种遍历,图文详解)

前言树是数据结构中的重中之重,尤其以各类二叉树为学习的难点。一直以来,对于树的掌握都是模棱两可的状态,现在希望通过写一个关于二叉树的专题系列。在学习与总结的同时更加深入的了解掌握二叉树。本系列文章将着重介绍一般二叉树、完全二叉树、满二叉树、线索二叉树、霍夫曼树、二叉排序树、平衡二叉树、红黑树、B树。希望各位读者能够关注专题,并给出相应意见,通过系列的学习做到心中有“树”。1 重点概念1.1 结点概念结点是数据结构中的基础,是构成复杂数据结构的基本组成单位。1.2 树结点声明本系列文章中提及的结点

2020-06-25 10:32:16 6057 2

原创 二叉树合集(六):高度平衡的二叉搜索树简介(图文解析)

高度平衡的二叉搜索树简介在这篇文章中,我们将帮助你理解高度平衡的二叉搜索树的基本概念。什么是一个高度平衡的二叉搜索树?树结构中的常见用语:节点的深度 - 从树的根节点到该节点的边数节点的高度 - 该节点和叶子之间最长路径上的边数树的高度 - 其根节点的高度一个高度平衡的二叉搜索树(平衡二叉搜索树)是在插入和删除任何节点之后,可以自动保持其高度最小。也就是说,有*N个节点的平衡二叉搜索树,它的高度是logN*。并且,每个节点的两个子树的高度不会相差超过1。为什么是logN呢?

2020-06-25 02:02:20 3064 1

原创 二叉树合集(五):二叉搜索树(图片详解,含基本操作)

定义二叉搜索树(BST)是二叉树的一种特殊表示形式,它满足如下特性:每个节点中的值必须大于(或等于)存储在其左侧子树中的任何值。每个节点中的值必须小于(或等于)存储在其右子树中的任何值。下面是一个二叉搜索树的例子:像普通的二叉树一样,我们可以按照前序、中序和后序来遍历一个二叉搜索树。 但是值得注意的是,对于二叉搜索树,我们可以通过中序遍历得到一个递增的有序序列。因此,中序遍历是二叉搜索树中最常用的遍历方法。二叉搜索树代码实现1、二叉搜索树的结点​ 每个二叉搜索树的结点,包含关键字ke

2020-06-25 01:56:43 2134

原创 【LeetCode】108.将有序数组转换为平衡二叉树(中序遍历三种方法,java实现)

题目链接解析遍历树的方法。DFS(先序遍历,中序遍历,后序遍历);BFS。遍历树的两种通用策略:深度优先遍历(DFS)这种方法以深度 depth 优先为策略,从根节点开始一直遍历到某个叶子节点,然后回到根节点,在遍历另外一个分支。根据根节点,左孩子节点和右孩子节点的访问顺序又可以将 DFS 细分为先序遍历 preorder,中序遍历 inorder 和后序遍历 postorder。广度优先遍历(BFS)按照高度顺序,从上往下逐层遍历节点。先遍历上层节点再遍历下层节点。下图

2020-06-25 01:51:30 773

原创 【LeetCode】110.平衡二叉树(从底至顶,从顶至底 两种方法,java实现)

题目链接分析:根据定义,一棵二叉树 T存在节点p∈T,满足时,它是不平衡的。下图中每个节点的高度都被标记出来,高亮区域是一棵不平衡子树。平衡子树暗示了一个事实,每棵子树也是一个子问题。现在的问题是:按照什么顺序处理这些子问题?方法一:从底至顶(提前阻断)此方法为本题的最优解法,但“从底至顶”的思路不易第一时间想到。思路是对二叉树做先序遍历,从底至顶返回子树最大高度,若判定某子树不是平衡树则 “剪枝” ,直接向上返回。算法流程:recur(root):递归返回值:当节点

2020-06-25 01:11:19 290

原创 【LeetCode】220.存在重复元素 (二叉搜索树方法+桶方法,java实现)

前言本文中运用了平衡二叉搜索树,也是java里面的TreeSet数据结构。也运用了桶。感兴趣的朋友可以了解一下。题目分析概述这篇文章是为中级读者准备的,文章中会介绍了以下几种方法:二叉搜索树,散列表和桶。方法一 (线性搜索) 【超时】思路将每个元素与它之前的 k个元素比较,查看它们的数值之差是不是在 t以内。算法解决这个问题需要找到一组满足以下条件的 i和 j:我们需要维护了一个k大小的滑动窗口。这种情况下,第一个条件始终是满足的,只需要通过线性搜索来检查第二个条件是否满足就可

2020-06-24 22:55:48 731

原创 【LeetCode】235.二叉搜索树的最近公共祖先(递归+迭代,详细图解,java实现)

前言:这道题其实是236.二叉搜索树的最近公共祖先的特殊情况版,其中的二叉树变为了二叉搜索树。我在另一篇博客中也有详细解析,地址是:【LeetCode】236.二叉树的最近公共祖先(后序遍历 DFS ,清晰图解)有兴趣的朋友可以看看,加深对二叉树的理解。题目地址:https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-search-tree/解析:我们来复习一下二叉搜索树(BST)的性质:节点 NN 左子树

2020-06-22 00:40:18 366

原创 【LeetCode】215.数组中的第K个最大元素(三种方法,九个思路的代码实现,java格式)

题目题目链接解析这道题据说是面试的高频考题,同时也是基础算法的应用。方法一:暴力解法题目要求我们找到“数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素” ,语义是从右边往左边数第 k 个元素(从 11 开始),那么从左向右数是第几个呢,我们列出几个找找规律就好了。一共 6 个元素,找第 2 大,索引是 4;一共 6 个元素,找第 4 大,索引是 2。因此,升序排序以后,目标元素的索引是 len - k。这是最简单的思路,如果只答这个方法,面试官可能并不会满意,但是在我们

2020-06-21 21:19:47 2510

原创 【LeetCode】450.删除二叉搜索树中的节点(java实现,详细图解)

题目链接:https://leetcode-cn.com/problems/delete-node-in-a-bst/分析二叉搜索树的三个特性:这些性质还是要重复一遍:1.中序遍历二叉搜索树的中序遍历的序列是递增排序的序列。中序遍历的遍历次序:Left -> Node -> Right。中序遍历代码:public LinkedList<Integer> inorder(TreeNode root, LinkedList<Integer> arr

2020-06-21 13:24:44 420

原创 【LeetCode】701.二叉搜索树中的插入操作(递归+迭代,图解,java实现)

题目题解概述二叉搜索树的巨大优势就是:在平均情况下,能够在O(log*N*)的时间内完成搜索和插入元素。二叉搜索树的插入方法非常简单,我们将插入的节点作为叶子节点的子节点插入。插入到哪个叶节点可以遵循以下原则:若 val > node.val,插入到右子树。若 val < node.val,插入到左子树。方法一:递归算法:若 root == null,则返回 TreeNode(val)。若 val > root.val,插入到右子树。若 val < r

2020-06-20 23:20:14 597

原创 完美解决网站无法复制或者带推广小尾巴问题(多种方法,图文教学,总有一种合适你的)

前言我们在复制某些网站的内容时,有些网站为了保护权利设置了内容不可复制,并且图片右击无法获取图片链接或者是下载图片。而有些网站例如csdn会在复制后带一个网页推广小尾巴。并且会让我们复制的内容失去原有的样式,很影响工作效率。于是下面总结出几点方法来解决这几个问题。方法一:直接在谷歌浏览器设置中禁用jsF12 - F1 - Preferences - Debugger - 勾选 Disable JavaScript需要注意一旦关闭F12 javascript就恢复启用了具体如图:方法二:下载谷

2020-06-20 21:46:27 1754

原创 【LeetCode】98. 验证二叉搜索树(递归+中序遍历,Java实现,上下界详细图解)

题目解析方法一:中序遍历二叉搜索树「中序遍历」得到的值构成的序列一定是升序的中序遍历时,判断当前节点是否大于中序遍历的前一个节点,如果大于,说明满足 BST,继续遍历;否则直接返回 false。class Solution { long pre = Long.MIN_VALUE; public boolean isValidBST(TreeNode root) { if (root == null) { return true;

2020-06-20 18:03:53 427

原创 【LeetCode】297.二叉树的序列化与反序列化(手绘图解,BFS+DFS两种方法)

题目链接:https://leetcode-cn.com/problems/serialize-and-deserialize-binary-tree/问题描述:解析方法1:DFS(递归)递归可以理解为:转交职责递归一棵树,只关注当前的单个节点就好剩下的工作,交给递归完成“serialize 函数,你能不能帮我序列化我的左右子树?我等你的返回结果,再追加到我身上。”为什么选择 前序遍历,因为在反序列化时,根|左|右,更容易定位根节点值遇到 null 节点也要翻译成一个特殊符号,反

2020-06-20 13:56:15 360

原创 Typora主题更换(含主题下载云盘链接)

前言Typora的默认主题大部分是白色的,于是想着更换主题。在官网的主题选择中还发现了OneDark主题,习惯使用VScode的人肯定非常喜欢这个主题。这里也提供几个主题包,不想去官网下载的话直接下载链接里的也可以。百度云链接:https://pan.baidu.com/s/1GZoVfbe5NbSw4ii0J2ArUg提取码:6byb步骤第一步:官网下载主题下载地址:http://theme.typora.io/选择自己喜欢的主题点击Download下载。第二步:Typora设置

2020-06-16 08:58:50 7137 2

原创 Typora图床设置(阿里云版,图片自动上传)

前言当我们在使用Typora编写markdown文档的时候,如果要上传到例如csdn这些博客网站上,图片就得一个个上传,太麻烦了。因此我们可以搭建图床,实现图片的自动上传。然后再导入markdown文件就可以直接上传到博客上啦!而且现在Typora更新了之后,已经支持利用picgo自动上传了,简直方便的不行。来看看效果本文的图床选择的是阿里云,阿里云可以说是国内最稳定的图床了,而使用smms或者七牛云的话,虽然是免费,但是也可能有存在问题。况且阿里云一年的价格也才9元,要什么自行车呀。话不多说,下

2020-06-15 20:33:17 2040 4

原创 Markdown转换word(两种方法,实现两者互转)

Markdown转换成wordTypora+pandoc就可以简单的实现Markdown转换成word啦!在日常使用过程中,需要用到其他的格式,typora默认支持 .md文件转 .pdf与 .html格式,其余的常见格式需要使用 pandoc扩展程序来支持。Typora安装1.打开Typora的官网:打开链接如下所示:下滑,选择适合自己系统的安装包。2.下载完成后打开exe文件安装即可。可以简单测试一下pandoc安装1.pandoc官网获取安装包:https://github.com

2020-06-15 17:15:43 29476 2

原创 NS3快速入门(使用VScode查看、编译代码)

前言工欲善其工,必先利其器。最近在学习ns3,于是折腾了好几天的环境。终于可以自己动手了。如果你也是刚准备学习ns3,你可以借鉴我博客的文章,先把应该有的环境配置好,才能更好的去学习ns3。Ubuntu的安装与配置Ubuntu的优化NS3环境搭建搞定了环境之后,还没有进入正题去入门我们的NS3。在我们学习ns3的时候,大部分时候我们都是在终端中输入命令./waf和./war --run的方式来编译和运行项目,对于代码文件的更改也只是称“使用你喜欢的IDE将代码修改”。虽然说理论上我们可以通过

2020-06-03 19:46:40 7628 8

原创 NS3 入门环境搭建(VM虚拟机+Ubuntu,常见错误解析)

NS3 入门环境搭建3.30版本环境:VMware + Ubuntu 20.04 首先确保系统已经安装了vim没有的话请先安装。命令如下:sudo apt-get install vim-gtk环境搭建1.添加源sudo vim /etc/apt/sources.listdeb http://archive.ubuntu.com/ubuntu/ trusty main universe restricted multiversesudo apt-get update2.编写脚本安

2020-06-02 22:03:41 2775 1

小米网页静态实现.rar

模仿小米网站制作的一个静态网页,采用了html+css+js的方法,内涵详细源码。有些地方使用了bootstrap框架,整体页面设计不错,包含了所有源代码文件以及图片。

2020-06-26

图书管理系统 2020.6.15.rar

自己做的一个图书管理系统,里面包含设计报告,非常的详细。代码全部调试过一遍,没有bug,用eclipse打开即可。

2020-06-25

空空如也

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

TA关注的人

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