自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 二叉树非递归遍历

TreeNode定义public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode() {} TreeNode(int val) { this.val = val; } TreeNode(int val, TreeNode left, TreeNode right) { this.val = val; this.left = le

2021-05-14 22:22:22 107

原创 判断一个整数中有多少个1的方法

二进制位移法int n;int res = 0;while(n != 0){ if((n & 1) == 1){ res++; } n >>= 1;}去除二进制数中的最右边的一int n ;int res = 0;while(n != 0){ res++; n &= n - 1;}

2021-03-23 08:38:17 1276

原创 HashMap遍历方法

1、迭代器方法public class HashMapTest { public static void main(String[] args) { // 创建并赋值 HashMap Map<Integer, String> map = new HashMap(); map.put(1, "Java"); map.put(2, "jre"); map.put(3, "Spring"); ma

2021-03-19 16:34:13 136 1

原创 生产者消费者问题

Synchronized版public class A{ public static void main(String[] args){ Data data = new Data(); new Tread(() -> { for(int i = 0; i < 10; i++){ try{ data.increment(); }catch(InterruptedException e){ e.printStackTrace(); }

2021-03-10 09:35:05 74

原创 单例模式详解

单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3、单例类必须给所有其他对象提供这一实例。单例模式的构造器是私有的。饿汉式单例这种单例模式的好处是没哟线程安全问题,坏

2021-03-08 11:36:14 139

原创 类加载与反射

类加载当程序使用某个类时,如果该类没有被装载进内存,则系统会通过加载、连接、初始化三个步骤来对类进行初始化。类加载就是类加载器将.class文件加载进JVM虚拟机中,并在虚拟机内存中产生一个Class对象。使用任何一个类虚拟机都会创建一个java.lang.Class类对象。类加载使用的类加载器是JVM提供,采用双亲委派机制。类加载器分为四种启动类加载起 BootStrapClassLoader 用来加载核心类库 扩展类加载器 extensionsClassLoader用来加载JRE的扩展

2021-03-08 09:11:33 281

原创 Leetcode单调栈问题

单调栈的定义单调递增栈:单调递增栈就是从栈底到栈顶数据是从大到小单调递减栈:单调递减栈就是从栈底到栈顶数据是从小到大42、接雨水解析:对于每一个高度的柱子来说如果想要以它为底盛水,那么它的左右两根柱子都必须比他要高,所以定义一个单调增栈,先保证栈中的元素左边都比右边要大,这时候只要再添加的元素大于栈顶的元素就满足了接水的条件了,这时候就可以计算以栈顶元素高度为底的能接多少水,算出后将其弹出,再次比较栈顶元素是否还能为底来接水,可以的话继续计算,知道无法再节水为止。左边界条件就是栈里必须有一个

2021-03-05 21:25:10 111

原创 Linux下Redis(单节点)环境配置

安装过程通过 WGET 下载 REDIS 的源码。wget http://download.redis.io/releases/redis-4.0.2.tar.gz将源代码解压到安装目录tar -xf redis-4.0.2.tar.gz -C ./进入 Redis 源代码目录,编译安装cd redis-4.0.2/安装 GCCsudo yum install gcc编译源代码make MALLOC=libc编译安装sudo make install此时Re

2020-11-24 20:43:07 346

原创 Linux下MongoDB的配置

MongoDB的下载进入 /root 目录下cd /root通过wget下载Linux版本的MongoDB.这里使用的是3.4.3版本。wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.4.3.tgz解压将压缩包解压到root目录下。tar -xf mongodb-linux-x86_64-rhel62-3.4.3.tgz -C ./将解压后的文件移动到最终的安装目录。(注意:移动后目录的名称就

2020-11-24 19:38:23 521

原创 CentOs安装java jdk

准备jdk安装包这里使用的安装包是,并将其放到root目录下。jdk-8u161-linux-x64.tar.gz卸载已有的OPENJDK如果系统有自带的openjdk,先将其提前卸载。1、首先查看已经安装的OpenJDK。rpm -qa | grep java2、将以java开头的安装包都卸载即可。yum -y remove java-1.7.0-openjdk-1.7.0.141-2.6.10.5.el7.x86_64yum -y remove java-1.8.0-ope

2020-11-24 16:40:48 113

原创 使用IDEA创建springboot项目时,Cannot download https://start.spring.io: connect timed out问题解决

使用阿里的https://start.aliyun.com/

2020-08-11 16:31:29 337

原创 IDEA2020版Maven依赖成功导入但是仍然报错找不到依赖包

报错原因:DEA启动程序按钮和maven的build使用的jar包环境不一样解决方案:设置idea构建/运行操作委托给maven就行了。具体设置:Settings搜索Runner,勾选delegate ide build/run actions to maven

2020-08-08 21:25:28 2154

原创 Windows10下maven及IDEA中的配置

下载maven安装包maven安装包下载地址点击下载后,讲压缩包解压到一个自己熟悉固定的位置。maven环境变量的配置添加M2_HOME:对应Maven的解压目录即可。这里的目录到bin目录的上一级。编辑Path环境变量:测试,在cmd窗口输入mvn -v查看,出现如下结果则配置成功。修改配置文件通常我们需要修改的文件是conf/settings.xml文件。本地仓库位置修改将注解内的那句代码复制到注解外,然后填入自己的本地仓库的位置。 <!-- localR

2020-08-04 20:10:45 333

原创 安装win10系统时怎么改变分区表

shift + F10diskpartlist diskselect disk ncleanconvert gpt

2020-07-17 08:04:34 962

原创 Leetcode 链表题目

链表是个线性数据结构由零个或多个数据元素组成的有限序列第一个元素无前驱,最后一个元素没有后继,其余元素一个前驱一个后继例题LeetCod 160、 找出两个链表的交点本题中要找出两条链表的交点,首先要知道链表的特性,下一个节点的位置只能由上一个节点来确定,所以不能直接确定某个值得特定的位置,因此本题可以采用两轮循环来确定交点的位置,分别同时从A,B 两个链表的头结点开始遍历,遍历完之后,再从赢一个节点开始遍历这样在第二轮是会在交点处相遇。第一种方法采用双指针的方法。这个方法有几个注意的地方。

2020-06-23 14:39:19 146

原创 Leetcode 哈希表题目

Leetcode 1、Two sum给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。解析:本题需要找到两个数相加等于目标值,所以首先想到使用Set集合,而且对于顺序并没有什么要求,因此使用哈希表来实现Set集合,即HashSet…在看发现要返回的是元素的下标,因此还要记录上每个元素的下标,因此需要用到Map集合来完成这个需求。最终本题决定采用HashMap数据结构来完成。class Solution{ public int

2020-06-21 09:33:08 436

原创 各大主板厂商u盘启动快捷键

2020-05-24 22:41:28 3764

原创 Tomcat服务器搭建

首先进入Apache官网下载安装包http://www.apache.org/

2020-05-21 16:09:06 190

原创 Leetcode 排序题

349、给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2]def intersect(nums1, nums2): # TODO 先将两个数组进行排序 nums1.sort() nums2.sort() print(nums1) print(nums2) ...

2020-04-09 14:29:56 322

原创 八大排序python代码

class Sort(object): # 八大排序算法 def bubble_sort(self, nums): """ 采用冒泡排序:依次将最大值冒泡到最后一个位置,经过两轮循环实现 :param nums: 待排序的数组 """ length = len(nums) if len...

2020-04-05 20:43:39 184

原创 Ubuntu下anaconda安装和使用

anaconda下载清华镜像: https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/官网: https://www.anaconda.com/download/下载完毕后是一个.sh文件。anaconda安装这里以 Anaconda3-5.0.0-Linux-x86_64.sh 为例。bash ./Anaconda3-5...

2020-04-02 15:22:14 731

原创 Ubuntu下github的使用

文章目录github介绍本地库介绍远程库介绍本地库和远程库的使用github介绍对于学生而言寻找开源项目来学习几乎成了获得项目经验的唯一途径,而开源项目那里去获得呢?这就是本篇文章要讲的主题如何使用github来获得开源项目,github是一个巨大的开源项目宝库,学会如何使用它会对我们由很大的帮助。本地库介绍git是目前世界上最先进的分布式版本控制系统。什么是版本库?版本库又名仓库,英文...

2020-03-29 21:17:18 1038

原创 Ubuntu16.04终端字体大小改变

字体变大Ctrl + shift + =字体变小Ctrl + -

2020-03-25 17:34:53 772 1

原创 Ubuntu下pycharm的安装和卸载

pycahrm安装首先要去pycharm的官方网站下载Linux版本的pycharm安装包。如果想要下载以前版本的pycharm可以登录下方的网站去下载。https://www.jetbrains.com/pycharm/download/other.html安装包下载完毕后应该是一个后缀为:.tar.gz的压缩文件。此处我将下载的安装包放到了Downloads目录下(放在哪里随意)...

2020-03-25 17:32:41 3141 1

原创 RPM和YUM

RPM包的管理介绍一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版本中, 生成具有RPM扩展名的文件。RPM包的指令rpm包名基本格式firefox-45.0.1-1.el6.centos.x86_64.rpm名称:firefox版本号:45.0.1-1适用操作系统: el6.centos.x86_64表示 centos6.x 的 64 位系统如果是 i686...

2020-03-24 11:09:17 97

原创 分治算法解析

算法分治算法动态规划算法分治算法动态规划算法

2020-03-23 16:16:48 162

原创 最大子序和(python)

目录题目暴力求解法题目给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。暴力求解法暴力算法思路简单,不需要过多的思路。、在本题中要求解最大和子数组,最简单的方法就是将所有的子序列写出来然后进行比较,找出最大的那一组。def maxSubArray(self, nums): max_sum = nums[0] # 取一个变量...

2020-03-23 15:54:51 355

原创 赫夫曼树java实现

赫夫曼树基本介绍赫夫曼树的几个重要概念赫夫曼树构建步骤赫夫曼树的代码实现基本介绍给定n个权值作为n个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,成这样的二叉树为最优二叉树,也称赫夫曼树。赫夫曼树是带权路径长度最短的树,权值较大的节点里根较近。赫夫曼树的几个重要概念路径和路径长度:在一棵树中,从一个结点往下可以达到子结点之间的通路,称为路径。通路中分支的数目称为路径长度。节点...

2020-03-18 21:22:26 116

原创 堆排序的java实现

堆排序堆排序基本介绍堆排序基本思想堆排序基本介绍堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,他的时间复杂度为O(nlogn),他是不稳定排序。堆是具有以下性质的完全二叉树:每个节点的值都大于或等于其左右子树节点的值,称其为大顶堆,不要求节点左右子节点的大小。每个节点的值都小于或等于其左右子节点的值,称为小顶堆。大顶堆特点:arr[i] >= arr[2 ...

2020-03-17 16:37:32 90

空空如也

空空如也

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

TA关注的人

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