自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(46)
  • 资源 (1)
  • 收藏
  • 关注

原创 java 抠取红色印章(透明背景)

java 抠出红色印章图

2024-03-28 15:42:25 1725 2

原创 记一次解决poi XSSFWorkbook导出excel内存溢出换成SXSSFWorkbook还是内存溢出的问题

1、需求背景 工作中同事遇到一个导出excel内存溢出的问题,让我帮忙解决。一个excel大约有800个sheet页。原写法使用的XSSFWorkbook写入导出。百度了下了解到应该替换成SXSSFWorkbook,因为SXSSFWorkbook可以设置写入多少条就会生成临时文件保存到磁盘,释放占用内存以此来控制占用内存大小。但是我看了几个例子更换成SXSSFWorkbook以后,依然内存溢出!!! 2、解决过程 先是尝试改动窗口大小(百度的全是这个方法,然而并不管用),...

2021-10-11 15:47:40 8590

原创 js监听鼠标拖动事件(按住左键拖动触发,松开左键取消)

此段代码,实现了左键点击id元素内区域后,拖动鼠标到边缘区域滚动条(内部class元素的滚动条)自动滚动,松开鼠标后取消事件 业务需要记录一下 $(function () { var div=document.getElementById("元素id"); div.onmousedown=function(e){ document.onmousemove=function(e){ var xx=e.c...

2021-09-30 11:24:22 8743

原创 Oracle获取当前毫秒级时间

select to_char(systimestamp, 'yyyymmdd hh24:mi:ss.ff ') from dual; 带毫秒精确位数: select to_char(systimestamp, 'yyyymmdd hh24:mi:ss.ff3') from dual;

2021-08-31 13:41:18 3464

原创 Oracle清除查询结果缓存命令

优化sql测试执行速度的时候,第二次执行查询的非常快,无法起到测试效果。需要每次清除下缓存结果 记录下清楚缓存命令: ALTER SYSTEM FLUSH SHARED_POOL ; ALTER SYSTEM FLUSH BUFFER_CACHE; ALTER SYSTEM FLUSH GLOBAL CONTEXT; ...

2021-08-31 13:38:02 4027

原创 Linux下静默安装oracle11g详细步骤(CentOS6.8)

安装步骤: 1. 安装依赖包 yum -y install binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glib...

2019-09-26 13:08:59 1797

原创 在eclipse中操作HDFS

本文主要讲述如何在本地eclipse操作HDFS集群 1.配置hadoop的插件,以便在eclipse中操作HDFS 1)在eclipse的安装路径下查看是否有dropins文件夹,若没有则新建一个。 2)在dropins文件夹下创建plugins文件夹。 3)把hadoop-eclipse-plugin-2.6.0.jar包放到plugins文件夹下。 2.重启eclips...

2018-10-14 20:13:17 1422

原创 搭建HDFS集群的客户端

此文章主要讲述集群内操作的缺点以及如何配置集群的客户端。 不建议集群内操作:        如果每一次上传文件都是选择某一台DN作为客户端,就会导致这个节点上的磁盘以及网络IO负载超过其他的节点,久而久之这个节点的磁盘以及网卡性能远远低于其他节点,从而导致数据的倾斜问题。 一般要进行集群外操作,配置集群的客户端。 配置集群客户端的步骤: 1、新建一台虚拟机,修改虚拟机的hosts文件(修改内容...

2018-10-14 19:27:51 787

原创 HDFS HA完全分布式搭建步骤

  集群规划:   NN-1 NN-2 DN ZK ZKFC JNN node01 *       * ...

2018-10-12 19:19:34 218

原创 排序总结

答题情况: 感想:通过做排序这一部分的题,进一步体会各个不同的排序方法的异同点。重点掌握快速排序,堆排序,希尔排序。针对各个不同的问题,具体情况具体分析,可以进一步体会上一个学期学过的vector 应用方法。从时间复杂度来看,直接插入排序,直接选择排序,和起泡排序是一类,其时间复杂度都是O(n2)的。堆排序,快速排序,归并排序属于第二类,时间复杂度是O(nlog2n)。希尔排序介于O(n2)与O

2017-06-15 16:28:21 270

原创 合并区间

问题描述:给出若干闭合区间,合并所有重叠的部分。 样例:给出的区间列表 => 合并后的区间列表: [                     [   [1, 3],               [1, 6],   [2, 6],      =>       [8, 10],   [8, 10],              [15, 18]   [15, 18]        

2017-06-08 16:54:02 398

原创 整数排序

问题描述:给一组整数,按照升序排序,使用选择排序,冒泡排序,插入排序或者任何 O(n2) 的排序算法。 样例:对于数组 [3, 2, 1, 4, 5], 排序后为:[1, 2, 3, 4, 5]。 解题思路:给出一个数组,要求把它从小到大排列。可以直接使用sort函数来实现。 实现代码: class Solution { public:     /**      * @param

2017-06-05 19:48:00 282

原创 中位数

问题描述:给定一个未排序的整数数组,找到其中位数。中位数是排序后数组的中间值,如果数组的个数是偶数个,则返回排序后数组的第N/2个数。 样例:给出数组[4, 5, 1, 2, 3], 返回 3    给出数组[7, 9, 4, 5],返回 5 解题思路:求数组的中位数,首先应该对数组进行排序。如果数组中元素个数为奇数,则第(n/2+1)个数为该数组的中位数。如果数组中元素个数为偶数,则(n/

2017-06-05 19:41:48 670

原创 两数之和

问题描述:给一个整数数组,找到两个数使得他们的和等于一个给定的数 target。你需要实现的函数twoSum需要返回这两个数的下标, 并且第一个下标小于第二个下标。注意这里下标的范围是 1 到 n,不是以 0 开头。 样例:给出 numbers = [2, 7, 11, 15], target = 9, 返回 [1, 2]. 解题思路:给出一个特定的值,在两个数组中找到它的加数,并且第一个数组

2017-06-05 19:32:52 305

原创 整数排序 II

问题描述:给一组整数,按照升序排序。使用归并排序,快速排序,堆排序或者任何其他 O(n log n) 的排序算法。 样例:给出 [3, 2, 1, 4, 5], 排序后的结果为 [1, 2, 3, 4, 5]。 解题思路:根据题目要求,可以使用归并排序,快速排序与堆排序。这里选择一种我比较熟悉的快速排序。归并排序的思想为找到一个基准元素,通过排序使得左边的值都比中间值小,右边的数都比中间值大。

2017-06-05 19:23:59 252

原创 两数组的交 II

问题描述:计算两个数组的交 样例:nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2, 2]. 解题思路:跟上面的数组的交类似,但是不同之处在于,每个元素出现次数得和在数组里一样。参考上一题的做法,我们依旧先对两个数组进行排序,再逐一比较两数组的元素。若数组1当中的元素小于当前位置数组2当中的元素,则此时数组2当中的指针保持不变,数字1当中的指针往后移;同理

2017-06-05 19:14:21 224

原创 两数组的交

问题描述:返回两个数组的交 样例:nums1 = [1, 2, 2, 1], nums2 = [2, 2], 返回 [2]. 解题思路:给了两个数组,求取两个数组的交集。我最先想到的是,先将这两个数组从小到大排序,然后逐个比较,有相同的就把它挑出来,放到一个新的vector 向量当中,直至比较完所有的元素。但是在比较的过程当中,要注意两个数组的长度可能不相等,这个时候应该分情况进行讨论。 实

2017-06-05 19:02:58 249

原创 Convert BST to Greater Tree

问题描述:Given a Binary Search Tree (BST), convert it to a Greater Tree such that every key of the original BST is changed to the original key plus sum of all keys greater than the original key in BST.

2017-05-18 16:48:32 207

原创 在二叉查找树中插入节点

描述:给定一棵二叉查找树和一个新的树节点,将节点插入到树中。 你需要保证该树仍然是一棵二叉查找树。 样例:给出如下一棵二叉查找树,在插入节点6之后这棵二叉查找树可以是这样的:   2             2  / \           / \ 1   4   -->   1   4    /             / \    3          

2017-05-11 17:58:09 300

原创 二叉树情况总结

学习感想:通过做二叉树这一部分的题目,我本身对二叉树有了更深的体会。二叉树的题目看起来复杂多样,其实大部分都是基于二叉树的遍历基础之上的。不管做哪些题,首先我们要优先考虑的是根节点的情况,然后再分别考虑左,右子树。其次,体会更深的是递归函数的使用方法,使用递归函数可以大大节省我们的程序长度,但是在使用的过程当中,一定要明白出口在哪里?什么时候应该定义局部变量,什么时候应该定义全局变量,这些都是一些

2017-04-23 12:41:26 337

原创 把排序数组转换为高度最小的二叉搜索树

描述: 给一个排序数组(从小到大),将其转换为一棵高度最小的排序二叉树。 样例: 给出数组 [1,2,3,4,5,6,7], 返回      4    /   \   2     6  / \    / \ 1   3  5   7 实现思路:  根据排序二叉树的定义:        ① 或者是一棵空树;        ②或者

2017-04-23 12:30:19 353

原创 将二叉树拆成链表

描述:      将一棵二叉树按照前序遍历拆解成为一个假链表。所谓的假链表是说,用二叉树的 right 指针,来表示链表中的 next 指针。 样例:          1                \      1          2     / \          \    2   5    =>    3   / \   \          \  3   4  

2017-04-21 21:13:15 211

原创 二叉树的路径和

描述:     给定一个二叉树,找出所有路径中各节点相加总和等于给定 目标值 的路径。 一个有效的路径,指的是从根节点到叶节点的路径。 样例:给定一个二叉树,和 目标值 = 5:      1     / \    2   4   / \  2   3 返回: [   [1, 2, 2],   [1, 4] ] 实现思路:

2017-04-21 21:04:26 264

原创 子树

描述: 有两个不同大小的二进制树: T1 有上百万的节点; T2 有好几百的节点。请设计一种算法,判定 T2 是否为 T1的子树。  注意事项 若 T1 中存在从节点 n 开始的子树与 T2 相同,我们称 T2 是 T1 的子树。也就是说,如果在 T1 节点 n 处将树砍断,砍断的部分将与 T2 完全相同。 样例: 下面的例子中 T2 是 T1 的子树:

2017-04-20 16:18:15 311

原创 二叉树的所有路径

描述:给一棵二叉树,找出从根节点到叶子节点的所有路径。 样例:给出下面这棵二叉树:    1  /   \ 2     3  \   5 所有根到叶子的路径为: [   "1->2->5",   "1->3" ] 解题思路:要找到二叉树的所有路径,就相当于从根节点出发一直到叶子节点。我们可以在遍历的基础之上完成这项操作,但是又有所不同。首先从根节点出

2017-04-19 11:09:55 505

原创 二叉树的层次遍历

描述:给出一棵二叉树,返回其节点值的层次遍历(逐层从左往右访问) 样例:给一棵二叉树 {3,9,20,#,#,15,7} :   3  / \ 9  20   /  \  15   7 返回他的分层遍历结果: [   [3],   [9,20],   [15,7] ] 解题思路:这个题与普通的层序遍历之间的区别在于,要把每一层的节点分别输出。我们可

2017-04-14 08:30:47 283

原创 等价二叉树

描述:检查两棵二叉树是否等价。等价的意思是说,首先两棵二叉树必须拥有相同的结构,并且每个对应位置上的节点上的数都相等。 样例: 1             1    / \           / \   2   2   and   2   2  /             / 4             4 就是两棵等价的二叉树。     1        

2017-04-14 08:20:25 365

原创 二叉树的最小深度

描述:给定一个二叉树,找出其最小深度。二叉树的最小深度为根节点到最近叶子节点的距离。 样例:给出一棵如下的二叉树:         1      /     \     2       3           /    \         4      5   这个二叉树的最小深度为 2 解题思路:二叉树的最小深度,即为根节点与最近叶

2017-04-09 19:35:13 329

原创 二叉树的最大节点

描述:在二叉树中寻找值最大的节点并返回。 样例:给出如下一棵二叉树:      1    /   \  -5     2  / \   /  \ 0   3 -4  -5  返回值为 3 的节点。 解题思路:首先想到的是,要先遍历二叉树,从中找到值最大的节点然后返回,可以使用递归的方法。其次,怎样比较大小,因为要求返回的是一个节点,而不是最大值。所以这里我新建了一个maxi

2017-04-09 19:00:17 2136

原创 翻转二叉树

描述:翻转一棵二叉树 样例: 1         1  / \       / \ 2   3  => 3   2    /       \   4         4 解题思路:翻转一棵二叉树,就是将根节点的左右指针指向的值进行互换。所以脑子里最先想到的是sawp函数,然后想着用递归的方法来实现。 实现代码: /**  * Definition of TreeNode:

2017-04-09 18:30:57 185

原创 二叉树的最大深度

描述:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的距离。 样例: 给出一棵如下的二叉树: 1 / \ 2 3 / \ 4 5 这个二叉树的最大深度为3 解题思路:本题考察二叉树的深度,即从根节点到最远的叶子节点的距离。首先判断根节点的情况,如果根节点为空,则二叉树的深度为0。若不是,则看它的左右子树的情况。具体可以用递归函数

2017-04-09 17:15:53 184

原创 克隆二叉树

描述:深度复制一个二叉树。给定一个二叉树,返回一个他的 克隆品 。 样例: 给定一个二叉树: 1 / \ 2 3 / \ 4 5 返回其相同结构相同数值的克隆二叉树: 1 / \ 2 3 / \ 4 5 解题思路:根据已知信息,相当于把一棵二叉树复制一遍。把它的根节点复制到根节点,把它的左子树与右子树分别复制

2017-04-09 17:03:25 216

原创 二叉树的后序遍历

描述:给出一棵二叉树,返回其节点值的后序遍历。 样例: 给出一棵二叉树 {1,#,2,3}, 1 \ 2 / 3 返回 [3,2,1]。 解题思路:本题考察的是二叉树的后序遍历,首先访问左子树,然后右子树,最后访问根节点。具体实现方法可以用递归方法实现。 实现代码: /**  * Definition of TreeNode:  *

2017-04-07 20:59:35 189

原创 二叉树的中序遍历

描述:给出一棵二叉树,返回其中序遍历 样例: 给出二叉树 {1,#,2,3}, 1 \ 2 / 3 返回 [1,3,2]. 解题思路:与二叉树的前序遍历一样,可以利用递归函数来实现。首先访问左子树,然后访问根节点,最后访问右子树。 实现代码: /**  * Definition of TreeNode:  * class

2017-04-07 20:58:43 227

原创 二叉树的前序遍历

描述:给出一棵二叉树,返回其节点值的前序遍历。 样例: 给出一棵二叉树 {1,#,2,3}, 1 \ 2 / 3  返回 [1,2,3]. 解题思路:本题考察的是二叉树的前序遍历,即先访问根节点在访问左子树最后访问右子树。因此可以用递归函数来实现,递归的出口为当根节点为空时,直接跳出,其余按正常方式访问。 实现代码:

2017-04-07 20:23:27 181

原创 删除链表中的元素

描述:删除链表中等于给定值val的所有节点。 样例:给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1->2->4->5。 解题思路:先定义一个dummy节点,将head指针指向的数值储存起来,然后遍历链表,找到特定值的节点将它删除。 代码:/**  * Definition for singly-linked list.

2017-03-30 12:32:08 238

原创 链表答题情况总结

通过练习链表这一部分的题目,我感觉到了链表的本质操作都离不开它的指针。而当时在学习C++这一部分的时候,指针正好是我的短板。但是通过做这一部分的题,我感觉到指针用起来真的很灵活。这些题目当中,有的是利用指针确定倒数第n个节点,有的通过指针指向元素的值进行判断进而排序,有的可以通过定义两个指针来对链表进行划分。总之,我感觉,指针就是链表当中一个无所不能的工具,有了指针其他操作都会变得简单好多,同时它

2017-03-28 22:14:28 264

原创 两两交换链表中的节点

描述:给一个链表,两两交换其中的节点,然后返回交换后的链表。 样例:给出 1->2->3->4, 你应该返回的链表是 2->1->4->3。 解题思路:首先我们先定义一个dummy指针,将它指向head。下面,我们开始遍历head指针,当head当前指向的元素和它指向的下一个元素都不为空的时候可以交换两个节点。以交换第一个节点与第二个节点为例,先将head节点指向第二个节点,此时第一个节点与h

2017-03-28 22:03:03 222

原创 链表划分

描述: 给定一个单链表和数值x,划分链表使得所有小于x的节点排在大于等于x的节点之前。 你应该保留两部分内链表节点原有的相对顺序。 样例:样例 给定链表 1->4->3->2->5->2->null,并且 x=3 返回 1->2->2->4->3->5->null    解题思路:我们分别定义两个指针,一个左指针,一个右指针。如果链表当前元素小于给定元素的值,则将该元素

2017-03-28 21:46:11 210

原创 链表插入排序

描述:用插入排序对链表排序 样例:Given 1->3->2->0->null, return 0->1->2->3->null 解题思路:另外创造一个新的链表,为一个有序链表。将被排序的元素与顺序表当中的元素进行逐一比较,找到最后一个比被排序元素小的那一个元素,然后将此元素插入到那个元素的后面。 代码:/**  * Definition of ListNode  * class Li

2017-03-27 22:37:22 174

zip4j.jar包下载 包含zip4j-2.9.0版本和zip4j-1.3.1版本的j两个jar包,亲试均可用

从zip文件中创建、添加、提取、更新和删除文件 支持流(ZipInputStream和ZipOutStream) 读/写受密码保护的zip文件和流 支持AES和zip标准加密方法 支持Zip64格式 存储(无压缩)和放气压缩方法 从拆分的zip文件中创建或提取文件(例如:z01、z02、…zip) 在zip中支持Unicode文件名和注释 进度监视器-用于集成到应用程序和面向用户的应用程序中

2021-10-29

空空如也

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

TA关注的人

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