自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java集合框架-List接口

LinkedList简介LinkedList类是继承于AbstractSequentialList的双向链表。LinkedList类实现了List接口,定义对集合的基本(包括与位置有关的操作)。LinkedList类实现了Deque(Double End Queue)接口,可将LinkedList用作双端队列使用。LinkedList实现了Cloneable接口,即覆盖了函数clone...

2018-05-03 20:52:21 286

原创 Java集合框架-Collection接口

Collection接口Collection接口是List、Set和Queue等高度抽象处理的接口,定义了对集合操作的方法。实现Collection接口的集合根据具体的类,可以允许有重复元素(List接口的实现类),也可以没有重复元素(Set接口的实现类)。同样地,有些实现类可以允许null 值(List实现类,Set实现类和HashMap),另外一些不允许null 值(Hashtable)。

2018-05-02 20:43:21 261

原创 红黑树-删除操作

从一颗红黑树中删除结点的过程和二叉搜索叔的过程类似。假设删除结点为p,f为其父结点。二叉搜索树(BST)删除结点若p结点为叶子结点,直接删除即可。p结点只有左子树或只有右子树,此时只需要将p删掉,然后将p的子树直接连在原来p的双亲结点f上。p既有左子树又有右子树。先沿着p的左子树根结点的右指针一直往右走,直到来到其右子树的最右边的一个结点r(也可以沿着p的右子树根结点的左指针一直往左走,直到来

2018-04-04 22:24:07 323

原创 红黑树

红黑树红黑树是一颗二叉搜索树,它在每个结点上增加了一个存储位来表示结点的颜色,可以是RED 或 BLACK。一颗红黑树是满足下面红黑性质的二叉搜索树:性质1:红黑树中的每个结点是红色或是黑色的。性质2:根节点是黑色的。性质3:每个叶结点(NIL,即空结点)是黑色的。性质4:如果一个结点是红色,则它的两个子结点都是黑色的(个人理解,红色结点若有子结点必是黑色的,黑色结点的子节点可以是黑...

2018-03-27 11:38:35 338

原创 Java-访问修饰符

类的访问修饰符类只能用default(什么也不写),public 来修饰。对与用default 修饰的类只能在同一包下进行访问。类还可以使用abstract ,表示该类是抽象类,不能实例化该类。类还可以用final 来修饰。方法和域的访问修饰符方法的访问修饰符有private,default,protected 和 public。private 修饰的方法只能在本类中访问。defaul

2018-03-21 20:58:44 2102

原创 堆排序

堆堆是一种数据结构,是完全二叉树在数组中的存储。这棵完全二叉树满足:任何一个非叶节点的值都不大于(或不小于)其左右孩子的节点的值。若父亲的值大,孩子的值小,这样的堆叫做大顶堆;若父亲的值小,孩子的值大,则这样的堆叫做小顶堆。 由堆得定义知道,代表堆得这棵完全二叉树的根节点的值是最大(最小的),然后将找出的这个值交换到序列的最后(最前),这样有序序列元素增加1个,无序序列元素减少1个,对无序序列重复

2018-03-21 09:48:39 182

原创 Java-枚举类型

枚举类型枚举的定义,enum 类名{ 枚举值...}枚举值一般是大写字母,多个枚举值之间用逗号相隔,且枚举值默认的修饰符是public static final。编译器会生成相应的类,该类是final 并继承自java.lang.Enum 抽象类。可以在枚举类型中添加一些构造器、方法(包括main)和域。构造器只是在构造枚举常量的时候被调用。但是必须在声明完枚举实例后使用分号分开

2018-03-20 11:38:56 405

原创 Java-抽象类和接口

抽象类抽象类中既有方法的实现和抽象的方法。有一个或多个抽象方法的类必须声明为抽象类,没有抽象方法的类也可以声明为抽象类。抽象方法访问修饰符为public,protected,default(什么也不写)。抽象类不能实例化。如果将一个类声明为abstract,就不能创建这个类的对象;但是可以定义一个抽象类的对象变量,它只能引用非抽象子类的对象。抽象类中可以有实例域和构造方法。子类使用e...

2018-03-19 21:15:11 223

原创 Java-this和super

首先,this代表自身对象的引用,是一个地址。super是一个关键字,不能将super 赋给另一个对象变量,它只是一个指示编译器调用超类方法的特殊关键字。this作用引用隐式参数。调用该类其他的构造器,此时必须这条语句必须是第一条语句。当类没有提供任何构造器的时候,系统才会提供一个默认的构造器。这个构造器将实例域设置为默认值。如果类中提供了至少一个构造器,系统不会提供默认的构造器。...

2018-03-19 20:16:59 200

原创 Java-包装器类

所有的基本类型都有一个与之对应的类,这些类称为包装器类。对象包装器类是不可改变的,即一旦构造类包装器类,就不允许更改包装在其中的值。同时,对象包装器类还是final,因此不能定义它们的子类。 基本类型 包装器类 int Integer boolean Boolean long Long float Float short ...

2018-03-19 15:32:11 3056

原创 Java-内部类

内部类分为:成员内部类,局部内部类,匿名内部类和静态内部类。成员内部类成员内部类可以访问外围类的所有的成员属性和方法。成员内部类中不能存在任何static的变量和方法。成员内部类是依附于外围类的,所以只有先创建了外围类才能创建内部类。内部类对象有一个隐式引用,该引用指向了创建它的外部类对象。该外围类引用由编译器在构造器中设置。public class Outer {...

2018-03-19 10:04:17 210

原创 Java-static关键字

static域如果将域定义为static,那么每个类的对象将共享该static域。并且在加载类的时候对完成对static 变量的内存分配,此时可以通过类型直接方法。对于实例变量,该类的每一个对象都有自己的一份拷贝,它们之间互不影响。class A{ static int a=1; int b=0; public A(){} public void se...

2018-03-17 17:11:31 176

原创 Java-final关键字

final关键字可以修饰数据、方法和类。 1、final数据 当用final修饰变量时,那么这个变量的值是不可变的。此时分为两种情况:基本数据类型和引用数据类型。 当final修饰一个基本数据类型,表示该基本类型的值初始化后便不能改变。final修饰的基本类型变量可以不在声明时赋值,即可以先声明,后赋值,赋值之后便不能更改。 final修饰一个引用型...

2018-03-14 23:53:34 255

翻译 Trie树

Trie树的基本性质: 1、根节点 不包含任何字符,除根节点之外的任何一个节点都只包含一个 字符 2、从根节点到某一节点,将路径上的字符串连接起来,为该节点所对应的字符串。 3、每个节点的所有子节点包含的字符各不相同。以{“a”, “to”, “tea”, “ted”, “ten”, “i”, “in”, “inn”} 集合构建trieTree树,该树构建完如下所示, 其中在每一个节

2018-03-14 16:38:37 179

原创 685. Redundant Connection II

题目链接:https://leetcode.com/problems/redundant-connection-ii/description/这次变成了有向图。给定一颗有N个节点的树,树中有N条边,要求删除有向图中的一条边,使删除边后的图是一棵树。 考虑一棵树中,多了一条边后,会有两种情况: 1、图中有环 2、图中某个节点有两个父节点。 其实还有一种情况是图中既有环,又有某个节点有两个父节点

2017-12-24 22:35:56 350

原创 684. Redundant Connection

题目链接:https://leetcode.com/problems/redundant-connection/description/ 在一个有N个节点的无向图中,一共有N条边,要求从图中的边中删除一条边,删除这条边后的图是一颗树。在一棵树有N个节点,有N-1条边。如果有N条边,那么一定存在环。只需要把环中的一条边删除就可以。那么问题来了,如何判断图中有没有环呢?我用的是并查集。其思想为,如果一

2017-12-24 22:12:14 298

原创 662. Maximum Width of Binary Tree

题目链接:https://leetcode.com/problems/maximum-width-of-binary-tree/description/ 求树的宽度,就是求树的每个层次的宽度,并返回层次最宽的那个宽度。例如树[1,3,2,5,3,null,9] 树的宽度为4。 代码如下:# Definition for a binary tree node.# class TreeNode(o

2017-12-24 21:33:52 312

原创 Longest Univalue Path

题目链接:https://leetcode.com/problems/longest-univalue-path/ 这道题没有做出来,伤心。其实就差那么一点了,最终还是没有……,特此纪念这道题。# Definition for a binary tree node.# class TreeNode(object):# def __init__(self, x):# s

2017-12-07 14:01:32 435 1

原创 109. Convert Sorted List to Binary Search Tree

题目链接:https://leetcode.com/problems/convert-sorted-list-to-binary-search-tree/description/ 一开始没有注意到连接中的元素已经有序了这个条件,按照链表中元素的顺序,一个个的往平衡二叉树中插入节点,结果导致运行时间超时。下面的代码是就是这种思路。class Solution(object): def get

2017-12-03 16:23:20 265

原创 Sort List(二路归并排序)

题目链接:https://leetcode.com/problems/sort-list/description/ 题目要求:对链表进行排序,时间复杂度O(n),常数的空间复杂度 两种解法,本质上都是二路归并排序,一个是递归写法,另一个是非递归写法。递归写法简单,工整;非递归写法不太容易理解,也不简洁。 二路归并排序的过程如下所示: 待排序序列为:49,38,65,97,76,13,27。共

2017-11-30 17:49:45 423

原创 Valid Palindrome II

题目链接:https://leetcode.com/problems/valid-palindrome-ii/description/ 做这道题真是“路途艰辛”啊。一开始我就想到会不会有什么套路,想了半天没有想出来。后来干脆先暴力,果然有时间限制。然后自然而然的想到要降低时间复杂度,只检查字符不同的位置就行了,结果还是超时[衰]。再后来就开始认认真真的分析这道题的“套路”了。 因

2017-11-25 14:42:37 351

原创 669. Trim a Binary Search Tree

题目链接:https://leetcode.com/problems/trim-a-binary-search-tree/description/ 题目要求把不符合要求的节点”剪掉”即可。这是一颗二叉搜索树,需要利用二叉搜索树的性质。实现起来有点麻烦。过程也不太好叙述啊[衰] 1、当前根节点满足[L,R] 1.1、则检查当前根节点左子树的值 1.2、检查当前根节点的右子树的值

2017-11-17 10:42:13 269

原创 671. Second Minimum Node In a Binary Tree

题目详情:https://leetcode.com/problems/second-minimum-node-in-a-binary-tree/description/ 暴力破解,管它什么特征呢# -*- coding:utf-8 -*-class Solution(object): def inOrder(self,root):#中序遍历保存访问的序列 if root:

2017-11-16 20:08:42 209

翻译 Mac终端配置

一、配置文件类型的进行颜色显示 1、在bash_profile 启动颜色配置 export CLICOLOR=12、接下来配置具体文件显示的类型,export LSCOLORS=Fxfxdxdxcxexexaxexexex 其中LSCOLORS是用来设置当CLICOLOR被启用后,各种文件类型的颜色。LSCOLORS的值中每两个字母为一组,分别设置某个文件类型的文字颜色和背景颜色。LSCOLOR

2017-11-14 21:55:30 942

原创 1118. Birds in Forest (25)

题目链接:https://www.patest.cn/contests/pat-a-practise/1118根据这道题,发现自己对并查集的理解有误,根据自己的理解写出来的代码只得了17分,剩下的8分没有想出来到底那里错了。然后……然后就上网搜了答案![衰]!明明知道用什么方法,却写不出来,真弱啊!#include <iostream>using namespace std;#define N

2017-10-26 23:05:44 276

原创 1101. Quick Sort (25)

题目链接:https://www.patest.cn/contests/pat-a-practise/1101思路:设置两个数组int min_so_far[N],max_so_far[N] 。 假设在位置pos,namemin_so_far[pos] 用来记录从pos到n-1之间的最小值,即位置pos右边的最小值; max_so_far[N] 用来记录从位置0到pos的最大值,即位置左边的最大值

2017-10-22 17:08:32 303

原创 1119. Pre- and Post-order Traversals (30)

题目链接:https://www.patest.cn/contests/pat-a-practise/1119以题目给的例子说以下思路: 一、[1, 2, 3, 4, 6, 7, 5] [2, 6, 7, 4, 5, 3, 1] 1、前序遍历的第一个,后序遍历的最后一个节点的元素都为1,这是根节点 2、接下来判断该树是否唯一。 方法: 前序遍历完根节点后,应该会去遍历左子树

2017-10-22 11:10:28 255

原创 1115. Counting Nodes in a BST (30)

题目详情:https://www.patest.cn/contests/pat-a-practise/1115感觉很简单,但是没有写temp->left=NULL 和 temp->right=NULL 导致程序写错了,想了好长时间!特此纪念!#include <iostream>#include <malloc.h>#include <vector>using namespace std;t

2017-10-21 20:03:59 257

原创 HDFS和本地文件系统文件互导

一、从本地文件系统到HDFS 使用hdfs自带的命令 命令:hdfs dfs -copyFromLocal inputPath outputPath inputPath:本地文件目录的路径 outputPath:hdfs文件目录路径,即存储路径 二、从HDFS到本地文件系统 命令:hdfs dfs -copyToLocal inputPath outputPath

2017-10-21 15:18:10 8263 1

原创 Hbase和Mysql文件互相导入

以下的步骤都是我实验成功后的记录下来的,只记录了大体的步骤,由于环境的差异,可能导致你的操作并不一定会成功!不要机械的式的复制,要结合你本机的环境去处理。对于配置选项,有些我也不抬理解,待理解之后再来补充。实验环境:Linux 16.04.3hadoop-2.8.1hbse-1.2.6hive-2.2.0sqoop-1.4.6.bin__hadoop-2.0.4-alpha一、从MyS

2017-10-21 11:53:42 3247

原创 1007. Maximum Subsequence Sum (25)

题目详情:https://www.patest.cn/contests/pat-a-practise/1007 最大字串和问题,但是我却思考了好久,原因是我没有看清题意[衰]。例子中给出的输出也太具有迷惑性了,当然主要还是看清题意。特此谨记!#include <iostream>using namespace std;#define K 10001int main(){ int k

2017-10-08 10:55:02 238

原创 1135. Is It A Red-Black Tree (30)

题目详情:https://www.patest.cn/contests/pat-a-practise/1135 刚看到这道题的感觉很难,现在做出来了,感觉也就那么回事啊[傲娇脸]! 红黑树满足以下5条性质: 1、节点是红色或者黑色 2、根节点为黑色 3、每个叶节点(NIL节点,空节点)是黑色的 4、每个红色节点的子节点都是黑色的,即不能有两个连续的红色节点 5、从任一节点到其每个叶子的

2017-10-06 20:17:07 847

原创 1133. Splitting A Linked List (25)

题目详情:https://www.patest.cn/contests/pat-a-practise/1133这道题关键在与”链表”的访问和输出的空值。我一开始按照链表的输入顺序进行输出导致出错。 我用Pyhon写的,容易导致一些莫名其妙的错误,建议还是用C,C++写吧。用Python写得控制输入输出。但是在Mac上写,C、C++的输入又成问题了,只能在命令行下一遍遍的手动输。另外Pyhon运行较

2017-10-05 23:43:17 505

原创 1134. Vertex Cover (25)

题目详情:https://www.patest.cn/contests/pat-a-practise/1134 Vertex Cover(边覆盖):在图G=(V,E)中,是否存在顶点的子集,包含G中的每一条边e;如果存在这样的顶点的子集那么就为Vertex Cover,否则就不是。#include <iostream>#include <vector>#include <map>#inclu

2017-10-05 23:01:02 510

原创 Decode Ways

题目链接:https://leetcode.com/problems/decode-ways/description/ 一开始就想到了和前边的数相关,但是没有细想,导致出错。后来在纸上特意把前边的数给圈出来了,灵感突现。 举个例子:222的解码方式为3种,22的解码方式为2种,2的解码方式为1种。即(222)解码方式=(22 2)方式+(2 22)方式1272的解码方式为2种,1

2017-09-29 09:53:13 240

转载 Hive安装

在Apache的网站上都有关于Hbase和Hadoop的详细过程,但是我在网站上并没有找到关于Hive的详细配置信息。网站只是说应该该更设置,但是并没有说怎样设置,我只能上网找别的资料,按照找到的资料进行设置,设置成功,先总结如下。 本系统环境: 1、Hadoop 2.8.0 2、Java 1.8 3、Hive 2.1.1 4、MySQL 5.7.19 5、MacOS Sierra 10

2017-09-15 23:03:32 553

翻译 Hbase安装

最近有个题目,需要体验一下NoSQL数据库,我选择了Hbase数据库。 系统环境: 1、MacOS Sierro 10.12.4 2、Hbase 1.2.6 3、brew 1.3.2 4、Java 8 5、Hadoop 2.8.0 一、独立模式步骤: 1、使用brew install hbase安装hbase 2、我没有设置JAVA_HOME,大概brew已经给你设置好了。 3

2017-09-15 20:23:55 400

原创 Subsets II

题目详情:https://leetcode.com/problems/subsets-ii/description/以前遇到过类似的题目(https://leetcode.com/problems/permutations-ii/description/),即有重复元素,但是那时候没有写出来,今天模仿着那道题的思路写出来,虽然花的时间有点长。 1、对nums中的元素进行统计 2、对nums中的重

2017-09-10 15:02:24 347

原创 Search a 2D Matirx II

题目详情:https://leetcode.com/problems/search-a-2d-matrix-ii/description/思路: 1、检查第一列的行首元素,从最后一行开始,如果行首元素小于等于target的行停止,假设该位置为row。target不可能在大于row的行中,因为大于row行中的元素都比target大。 2、检查第一行的列首元素,从最后一列开始,如果列首元素小于等于t

2017-09-08 16:59:55 360

原创 Unique Paths

题目详情:https://leetcode.com/problems/unique-paths-ii/description/自己写的代码,感觉不够简洁# -*- coding:utf-8 -*-class Solution(object): def uniquePathsWithObstacles(self, obstacleGrid): """ :typ

2017-09-08 08:44:52 284

空空如也

空空如也

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

TA关注的人

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