自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 leetcode连续数组系列

一、前缀和560:和为k的子数组给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数>组的个数。示例 1 :输入:nums = [1,1,1], k = 2 输出: 2 , [1,1] 与 [1,1] 为两种不同的情况。这道题暴力的解法就是先保存数组的前缀和,然后遍历差分,求所有和为K的子数组,时间复杂度为O(n^2)。一次遍历的解法:遍历求前缀和,利用HashMap将所有前缀和的次数保存起来,遍历到某个前缀和sum时,判断map中是否存在sum-k,如果有,说明

2020-06-06 18:50:24 462

原创 设计模式之工厂方法模式与外观模式

工厂方法模式在简单工厂模式中,由工厂类进行运算的实例化,此时工厂类包含了已编写好的运算类。此时如果有新的运算需求,则需要更改工厂类的代码,这就违背了面向对象的开放封闭原则,即类对外开放扩展,对内封闭修改。工厂方法模式很好的解决了这一问题,工厂方法将运算类的实例抽象为一个接口ComputeFactory,该接口有一个创建运算实例的方法CreateOperation(),然后每个运算类创建一个工厂并实现该接口。public class AddFactory implements ComputeFactor

2020-06-01 15:56:16 725

原创 设计模式之简单工厂模式和策略模式

简单工厂模式将对象的建立与使用解耦,由工厂负责创建具体对象,应用需要对象时只需调用工厂类的API即可。比如编写一个计算器、可使用工厂模式如上图所示,加减乘除抽象继承Operation类,重写getResult方法。ComputerFactory为工厂类public class ComputerFactory { //由工厂类根据不同运算符生成需要的执行的操作 public static Operation getOperation(char operate){ O

2020-05-31 22:20:31 225

原创 解决 maven下载依赖过程中出现"PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderExcept

今天在用maven加载一个插件过程中,出现了标题中的错误,依赖在https://repo.maven.apache.org/maven2/中,结果出现PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException原因是jre没有该网址安全证书,导致无法通过验证解决方案: ...

2020-04-26 14:31:09 2887

原创 Mysql不能插入中文报错

用hibernate在Mysql中插入中文数据时,显示如下错误很明显是字符编码的问题,通过show variables like 'character_set_%'命令查看数据库编码可以看到 数据库和数据库服务都是latin1编码,改编码不支持中文,所以需要修改为utf-8,命令如下alter table t_typeconvert to character set utf8...

2020-04-15 11:14:18 169

原创 Synchronized与Lock

Synchronized与Lock是Java锁的两种实现方式,前者是关键字,后者是类SynchronizedSynchronized是Java的关键字,可以同步代码块和方法。同步代码块的锁对象为任意对象,同步方法的锁对象是调用方法的实例对象或类对象public class Main implements Runnable{ private volatile int t...

2020-04-01 00:13:10 241

原创 内存区域

JVM运行时数据区域1.程序计数器:当前线程所执行的字节码的行号指示器,线程私有,唯一一个没有规定任何OutOfMemoryError(OOME)的区域2.Java虚拟机栈:每个方法在执行的时候回创建一个栈帧,用于存储局部变量表等该方法的信息,方法的调用和完成对应的是栈帧 的入栈和出栈。线程私有,线程请求的栈深度超过JVM允许的深...

2020-03-31 16:41:24 124

原创 垃圾收集器和内存分配策略

垃圾回收,就是将内存中不需要的对象内存回收掉,以保证堆内存足够分配对象是否需要回收:引用计数算法和可达性分析算法引用:1:强引用:new生成的引用,只要强引用还在,GC不会回收2:软引用:有用但并非必需的对象,内存溢出异常之前会第二次回收,若还是OOME,才抛出异常,jdk提供SoftReference实现3:弱引用:非必需对象,引用的对象只能生存到下一次GC前,GC...

2020-03-31 16:05:15 139

原创 类加载机制

类的加载就是将class文件加载到虚拟机(内存)中,并进行验证、准备、解析、初始化,行程JVM可使用的类1.加载:①获取定一个类的二进制字节流(可以是class文件,也可以jar文件,war文件等)。 ②将字节流代表的静态存储结构转化为方法区运行时的数据结构。 ③生成代表这个类的java.lang.Class对象,可以实现反射机制...

2020-03-31 15:58:42 137

原创 leetcode104[二叉树的层次遍历]

给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其自底向上的层次遍历为:[ [15,7], [9,20], [3]]思路:利用栈和队列的性质。根节点不为空...

2019-12-14 15:18:55 124

原创 JDK8源码分析之HashMap

一、什么是HashMap顾名思义,HashMap就是基于哈希表的Map实现。哈希表(散列)是一种数据结构,其主干是数组,但存储方式是利用哈希函数将元素映射到数组(哈希表)中的位置,通过下标一次定位。根据哈希表的定义,当我们需要查找过添加某个元素时,通过哈希函数即可快速定位,理想情况下每一个元素都会通过哈希函数一映射唯一的地址,但这只是理想情况。哈希冲突事实上,由于数据的无限和地...

2019-11-27 21:35:53 132

原创 leetcode101[对称二叉树]

判断一个二叉树是不是镜像对称的,比如下面的二叉树就是镜像对称的。可以用递归的方法判断,当每一个节点的左子节点和右子节点相等时,根据镜像规则,递归向下判断左子节点的左子树和右子节点的右子树,左子节点的右子树和右子节点的左子树,同为null时,遍历结束,返回True。否则节点镜像不对称,地柜终止,返回false。/** * Definition for a binary tree no...

2019-10-03 18:56:38 108

原创 leetcode104[二叉树的最大深度]

给定一个二叉树,求出其最大的深度,也就是根节点到叶子节点的距离。首先想到的是用递归的方法,依次求出每一个节点的最大深度直到叶子结点。每一个节点的最大深度都是左右子树较大的深度再加当前深度1,即每次递归返回Max(left,right)+1,叶子结点也就是递归结束条件,返回0。这有点像动态规划,代码如下:/** * Definition for a binary tree node. * ...

2019-10-03 16:55:25 194

原创 为什么补码是按位取反再加一

今天刷LeetCode的位运算专题,想到机器做减法是加其补码来计算的。我们都知道求补码的方法是“按位取反再加一”,但是为什么呢?看了几篇文章,最经典的总结就一句话,正数原码+其负数的补码(以下简称补码)=0,正数+其负数的反码(以下简称反码)+1=0,即补码=反码+1。在机器码中最高位为符号位。以btye类型为例,最高位为符号位,其余七位数值位。当11111111(-127)加1得到的是000...

2019-09-25 09:40:12 3587 1

原创 leetcode5[Longest Palindromic Substring]

最长回文子串问题,题目描述:给定一个字符串s,找到s中最长的回文子串。你可以假设s的最大长度为 1000。所谓回文串,就是指一个字符串正序和倒序完全一致,必须"aba","baab"等,本题求的是一个字符串最长的回文子串,比如"aabbaccddcc"的最长回文子串就是"ccddcc"。首先想到的是暴力解法,遍历每一个字符作为子串的开端,字符串从后往前的每一个字符作为子串的结尾,...

2019-08-10 23:48:47 120

原创 leetcode746[Min Cost Climbing Stairs]

使用最小花费爬楼梯,题目描述如下:数组的每个索引做为一个阶梯,第i个阶梯对应着一个非负数的体力花费值cost[i](索引从0开始)。每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。比如[1,100,1,1]对应的最小花费就是1+1=2,[1...

2019-08-04 23:03:59 106

原创 leetcode198[House Robber]

题目描述:你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。意思就是非相邻的数字累加的最大值,比如输入是[1,2,3,4],那么最大金额就是2+4=6,[1...

2019-07-31 14:26:50 134

原创 leetcode70[Climbing stairs]

爬楼梯问题,描述如下:You are climbing a staircase. It takes n steps to reach to the top.Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?Note: Given n will b...

2019-07-30 22:08:33 142

原创 leetcode20[Valid Parentheses]

括号配对问题,题目如下:Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.An input string is valid if:Open brackets must be closed by the s...

2019-07-29 12:35:11 130

原创 python抓取在线视频

#coding:UTF-8import urllib2import osimport winsounddef save(string): i=0 while True: index = str(i).zfill(6)+'.ts' #补0 try: #不知道有多少ts文件,若存取失败则说明完成 url = 'http:...

2018-04-15 12:48:39 5087

原创 五大联赛积分榜查询工具

最近无事写了一个Python程序,用来查询五大联赛积分榜信息,写的过程中也学到了一些东西,效果如下:其中用到了正则表达式,prettytable库,感觉这个输出效果还挺好的,哈哈,我是皇马球迷。代码就不贴了,挺简单的。import urllib.requestimport refrom prettytable import PrettyTableglobal randef p...

2017-06-21 18:35:51 2303 3

原创 Windows环境安装BeautifulSoup模块

最近学习python爬虫,据说BeautifulSoup是一个很强的模块,得知需要安装,经过探索后,在win10下亲测安装成功,我用的是python31、在网站https://www.crummy.com/software/BeautifulSoup/下载安装包,就下载tar.gz,用winrar即可解压。2、打开cmd,cd到解压的路径,执行命令 py setup.py bu

2017-03-31 00:14:15 1158

原创 算法学习(二):动态规划(DP)(1)

DP算法

2016-09-07 18:06:47 579

原创 算法学习(一):递归与分治策略(2)

几个经典题目1.二分搜索算法2.归并排序算法3.快速排序算法

2016-07-19 22:06:12 411

原创 算法学习(一):递归与分治策略(1)

基本思想 将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。前提 原问题可以分割成k个子问题,1< k ≤n,且这些子问题都可以解,并可利用这些子问题的解求出原问题的解。先看一个简单的例子。/*阶乘算法*/#include<iostream>using namespace std;int factorial(int n);//计算n的阶乘int

2016-07-19 11:30:40 461

空空如也

空空如也

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

TA关注的人

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