自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Leetcode 230. 二叉搜索树中第K小的元素 C++

题目描述思路使用树的中序历遍,对于二叉搜索树,树的中序历遍得到的就是按照从小到大排序的一个序列。这里做了适当的改进,历遍的时候不再将数值保存到一个数组中,这样就不需要占用内存。直接通过记录当前历遍到第 i 个值(即第 i 大的数),和要求的 K 比较,相等就将其赋给保存结果的变量。但是这样做,程序仍然有优化的空间。因为,这个递归程序在得到了正确答案之后,并没有停下来,仍然在继续执行,直到完成...

2018-11-29 21:20:57 617 1

原创 Leetcode 226. 翻转二叉树 C++

题目描述解答一开始是真的不会,没有想到这种交换方式。没有考虑到交换一次之后,会产生的效果。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : ...

2018-11-29 20:19:53 438

原创 Leetcode 222. 完全二叉树的节点个数 C++

题目描述思路这个题采用递归的方法来实现。每次计算最左边的深度,和最右边的深度。如果相等,那么说明这颗树是满二叉树,那么直接用公式计算既可以得到结果。num_node=2h+1−1num\_node=2^{h+1}-1num_node=2h+1−1。如果两边的高度不一样,说明这颗树不是完全二叉树,那么就递归调用。节点数等于左子树的节点数+右子树节点数+1。num_node=num_of_l...

2018-11-27 09:09:19 468

原创 Leetcode 199. 二叉树的右视图 C++

题目描述思路这个题需要注意的是,当左子树的深度比右子树大得多的情况,所以不能只考虑树的右边。题目所给的例子带有一点误导性。本题采用的方法仍然是树的层序历遍,真的是一招学好,走遍天下。通过一个队列控制,每次处理一层的节点,同时将下一层的节点压入队列。当处理到当层的最后一个节点的时候,将这个节点的值压入保存最终结果的vector中。于是就可以得到结果。解答/** * Definition ...

2018-11-27 08:32:21 1216

原创 English_记录

2018-11-26Many in Rural US Find Fewer Maternity Care Options

2018-11-26 20:16:25 147

原创 惯性技术【力学基础】

常用坐标系和坐标变换机体坐标系和地球坐标系地球坐标系从地球坐标系变到机体坐标系,通过三次旋转可以得到。第一次偏航角的旋转。第二次,俯仰角的变换第三次,滚转角的变换综合,由坐标变换为:...

2018-11-26 14:37:20 1118

原创 Leetcode 129. 求根到叶子节点数字之和 C++

题目描述思路使用深度优秀的思想,通过递归实现求解。递归函数中,通过sum记录历遍到当前节点时的总和,通过引用类型的参数res实现对所有路径和的记录。解答/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *...

2018-11-25 10:54:01 418

原创 117. 填充同一层的兄弟节点 II C++

题目描述说明本题和第116题竟然可以采用同样的程序通过。本题的差别,不过是少了一个完全二叉树的条件,但是使用层序历遍的思想,根本不需要考虑这些限制条件。解答/** * Definition for binary tree with next pointer. * struct TreeLinkNode { * int val; * TreeLinkNode *left, *r...

2018-11-25 10:26:36 195

原创 Python3【类】继承

继承是面向对象的一个基本准则,继承允许我们在两个或者更多的类之间创建一种关系。基本继承从技术上将,每一个Python类的创建都是用了继承,所有的类都是一个叫做object的特殊类的子类。不具体指明的时候,自动继承过来。当然,亦可以通过下面的方式现实的从object类继承。class MyClass(object):语法:在定义一个新的类的时候,在类名的括号里面包含父类的名字就可以了。这样...

2018-11-25 09:58:40 667

原创 Leetcode 116. 填充同一层的兄弟节点 C++

题目描述思路本题是一个很典型的题,采用的方法就是树的层序历遍。通过一个队列控制,每次循环处理一层的节点,下一次处理下一层的节点。关于树的层序历遍可以参看另外两个题,可以有更深的认识。二叉树的层次遍历,二叉树的锯齿形层次遍历.解答/** * Definition for binary tree with next pointer. * struct TreeLinkNode { * ...

2018-11-25 08:27:39 270

原创 Leetcode 114. 二叉树展开为链表 C++

文章目录题目描述递归法方法一方法二非递归法题目描述递归法方法一这种方法,不太容易理解。第一步就是递归,后面才是对基本情况的处理。通过递归,直接向下一直递归到叶节点才开始处理。从树的最底部开始处理。相比下面两种处理,这中方法的速度最快。class Solution {public: void flatten(TreeNode* root) { if(!root)...

2018-11-24 23:23:04 680

原创 Python3 【类】类基础知识

创建类类的创建以class开头,之后跟着名字,并以冒号结尾。(建议类的名字使用驼峰式记法:一大些字母开头,并且随后紧跟的任意一个单词都要以大写字母开头)。注意Python中不需要括号,直接通过缩进就可以管理。下面创建一个最简单的类class MyFirstClass: class_suite=0使用命令pyhton -i firsrt_class.py运行这段代码,-i 的...

2018-11-22 22:38:49 541

原创 Leetcode 103. 二叉树的锯齿形层次遍历 C++

题目描述思路本题和第102题类似。通过一个队列来控制,仍然是当做一个普通的广度优先搜索来实现。唯一不同的是,判断是否需要将当前的数组反转。在程序中定义一个标签(flag)来实现。flag代表树的深度,根节点为零。树的深度为奇数的时候,不需要反转,树的深度为偶数的时候,需要反转。解答/** * Definition for a binary tree node. * struct Tr...

2018-11-19 11:09:37 406

原创 Leetcode 6. Z字形变换 C++

题目描述思路一下做法是一种比较粗暴的做法。通过定义一个二维数组,记录Z型变换后的结果,之后再将结果读出。在程序中,只需要定义一个变量(ln)用于记录是哪一行该插入。如果到达最上端,则下一次就开始向下一行插入。如果到达最下端,那么下一次就开始向上一行插入。解答class Solution {public: string convert(string s, int numRows)...

2018-11-17 18:26:22 754

原创 Leetcode 113. 路径总和 II C++

题目描述思路这道题目是采用的方法是深度优先搜索。只不过需要将结果找到的结果保留下来。具体做法:设置一个临时的数组保存已经历遍到的元素。在递归调用的时候,每次先将当前根节点的元素存入数组,然后将sum的值减去当前的元素值。一直历遍到叶节点,如果此时sum减去当前的元素值等于0,那么说明这个路径的和为sum。这是就找到了一条路径,并将其存入结果中。解答/** * Definition f...

2018-11-11 09:20:33 364

原创 Leetcode 95. 不同的二叉搜索树 II C++

题目描述思路首先,本题是另外一个题的升级版,详细解答。这两个题都是用到了动态规划的思想,大的思路是差不多的。不过,这个题要复杂得多。解本题之前一定要先去看一看上一个题的思路。本题思路,和上一个题一样,通过循环历遍每一个元素。以这个元素作为根节点,那么比它小的元素就只能是属于它的左子树,比它大的节点属于它的右子树。那么剩下的问题,就是求左子树的所有可能的集合,和右子树的所有可能的集合。这两...

2018-11-10 10:12:33 3728

原创 Ubuntu下远程访问服务器方法(包含文件操作)

本方法使用ssh和putty配合使用。以下的操作都是在自己电脑进行的,安装设置完毕后就可以通过服务器的端口号,用户名,密码访问服务器。1.安装软件1.1安装sshsudo apt-get updatesudo apt-get install openssh-server #安装ssh安装完成之后,输入sudo ps -e |grep ssh如果安装成功,命令行会输出sshd.如下...

2018-11-09 16:33:22 3178

原创 Leetcode 106. 从中序与后序遍历序列构造二叉树 C++

题目描述思路后序历遍,最后一个元素就是根节点的元素,于是就可以找到这个根节点在中序历遍中的位置,那么左子树的中序历遍和右子树的中序历遍就可以知道。由此可以知道左子树和右子树的节点数量,进而可以在后序历遍中确定左子树的后序历遍和右子树的后序历遍。之后,通过递归的思想,生成整棵树。注意:在递归调用程序中最后使用四个变量来指示,分别是(1)中序历遍的左端点,(2)中序历遍的右端点,(3)后序历...

2018-11-09 09:18:47 1338

原创 【Linux Shell脚本语言学习】(二)

文章目录屏幕输出echo变量1.环境变量2.用户变量3.命令替换重定向输入和输出1.输出重定向输入重定向执行数学运算1.expr 命令2.使用方括号3.浮点解决方案注释屏幕输出echo通过 echo 命令可以实现输出,如果在 echo 命令后面加上了一个字符串,该命令就能显示出这个文本字符串。默认情况下,不需要使用引号将要显示的文本字符串划定出来。但有时在字符串中出现引号的话就比较麻烦了。#...

2018-11-08 23:37:27 351

原创 ubuntu下安装opencv 查看opencv版本 nvida显卡驱动

直接使用pip安装pip install opencv-pythonpip install opencv-contrib-python查看版本:打开命令窗口:使用一下命令就可以查看。pythonimport cv2cv2.__version__安装显卡驱动1.更新源sudo apt-get upgradesudo apt-get update2.查...

2018-11-08 10:52:09 484

原创 Leetcode 105. 从前序与中序遍历序列构造二叉树 C++

题目描述思路根据前序历遍和中序历遍确定树。这里的思路是明确的。因为前序历遍,开头第一个元素就是树的根节点。在中序历遍中,确定了对应的根节点的位置,中序历遍中,根节点左边的全部元素构成树的左子树的节点,根节点右边的全部元素构成树的右子树的所有节点。具体做法:在先序前序历遍序列中找到树的根节点。在中序历遍后找到树的树的根节点位置。在前序历遍中,左子树的根节点为父节点之后的一个元素。由中...

2018-11-08 10:07:02 925

原创 【Linux Shell脚本语言学习】(一)

很久之前自己学习过linux的常用shell命令,但是没有记下来,有些生疏,这次自己记录一下,也方便自己以后查看。本笔记主要学习GNU bash shell的基本命令和操作,在Ubuntu16.04下使用。简介Shell也称为“壳”,是用户和内核之间的桥梁。我们都知道Linux系统很多都没有图形界面,很多运维人员都不会给Linux系统安装图形界面,因为图形界面可以实现的功能是很受限制的,而且...

2018-11-07 21:43:57 255

原创 Leetcode 98. 验证二叉搜索树 C++

题目描述给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:示例 2:分析本题我一开始的做法是按照深度优先的做法来实现,递归的判断每棵树的左右子树。每次判断其左儿子比它小,右儿子比它大,不过这样是不对的。为什么呢?请看下面的...

2018-11-07 10:28:20 307

原创 Leetcode 148. 排序链表 C++

题目描述在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。示例 1:输入: 4->2->1->3输出: 1->2->3->4示例 2:输入: -1->5->3->4->0输出: -1->0->3->4->5分析:因为对时间复杂读有要求O(n log n)

2018-11-05 20:12:13 788 1

原创 【算法】排序算法

对于一般的内部排序应用程序,选用的方法不是插入排序、希尔排序,就是快速排序。他们的选择主要是根据输入的大小来决定。1、插入排序对含N个元素的数组使用插入排序,,一共由N-1次排序组成。循环历遍到位置P的时候,保证位置P之前(0-P)的元素都是已经排序的。插入排序,嵌套循环,外层循环历遍到某一个位置,确保该位置之前的元素是排序好的。内层循环,通过和相邻元素交换,实现排序。插入排序,将大于当前...

2018-11-05 15:21:04 183

原创 Leetcode 55. 跳跃游戏 C++

题目描述:给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例 1:输入: [2,3,1,1,4]输出: true解释: 从位置 0 到 1 跳 1 步, 然后跳 3 步到达最后一个位置。示例 2:输入: [3,2,1,0,4]输出: false解释: 无论怎样,你总...

2018-11-04 20:56:47 632

原创 Leetcode 139. 单词拆分 C++

题目描述:给定一个非空字符串 s 和一个包含非空单词列表的字典 wordDict,判定 s 是否可以被空格拆分为一个或多个在字典中出现的单词。说明:拆分时可以重复使用字典中的单词。 你可以假设字典中没有重复的单词。示例 1:输入: s = "leetcode", wordDict = ["leet", "code"]输出: true解释: 返回 true 因为 "lee...

2018-11-03 23:21:48 1380

空空如也

空空如也

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

TA关注的人

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