自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode 216组合总和3(回溯法)

class Solution { public List<List<Integer>> combinationSum3(int k, int n) { }}解决:1.什么时候返回?记录的值已经为三个,等于n就放入结果集中不等于n就返回2.注意1-9的范围 //记录结果的集 List<List<Integer...

2019-11-05 19:36:31 215

原创 LeetCode 40 组合总和2(回溯法)

解决:1.这个和39组合总和的差距在于每个数字只能使用一次所以在回溯过程中,下一个起始位置不能是i,必须是i+12.如果相邻两个位置的元素相等,还有可能存在重复解所以要对candidate[i]和candidate[i-1]进行判断剪枝 List<List<Integer>> result = new ArrayList<List<Integer&...

2019-11-05 18:40:20 253

原创 LeetCode 39 组合总和(回溯法)

class Solution { public List<List<Integer>> combinationSum(int[] candidates, int target) { }}解决:1.对于第一个例子对target 7 分别减去每一个数组中元素后剩余为5,4,1,02.然后对剩余值再次进行同样减去数组中每一个元素...

2019-11-05 18:31:13 305

原创 LeetCode 1079活字印刷(回溯法)

class Solution { public int numTilePossibilities(String tiles) { }}解决:使用回溯法,因为结果的不同,所以将结果存在set中比较合适在回溯过程中,可以使用一个boolean数组来记录该位置是否被访问过先添加到set中,然后再取没有被访问过的位置进行回溯. private Set&lt...

2019-11-04 16:50:28 417 1

原创 LeetCode 1219 黄金矿工(回溯法)

class Solution { public int getMaximumGold(int[][] grid) { }}解决:1.哪些点可以作为起始点?遍历数组,只要不是0的位置都可以作为起始点2.寻找下一步位置的时候,如何判断走哪里用一个相同大小的boolean数组来记录走过的位置**,走过的位置记为true**3.下一个位置可以走哪里?...

2019-11-04 16:42:54 401

原创 LeetCode 22 括号生成(回溯法)

class Solution { public List<String> generateParenthesis(int n) { }}解决:1.什么时候能添加左括号?只要左括号的数目小于给出的n就能继续添加左括号2.什么时候能添加右括号?只要右括号的数目还小于左括号的数目就能继续添加左括号3.什么时候放结果?只要当左括号数目和右括...

2019-11-04 16:29:12 208

原创 LeetCode 357 计算各个位数不同的数字个数(动态规划)

class Solution { public int countNumbersWithUniqueDigits(int n) { }}解决:1.对于此题,如果n大于10则没有任何意义,因为一个十位数必定有重复的位数2.如果n等于1的话,它只用考虑个位,所以有十种情况3.如果n等于2的话要考虑情况只有个位数字:10种情况个位十位数字都有:十位可能...

2019-11-01 20:03:19 278

原创 LeetCode 17电话号码的字母组合(回溯法)

解决:1.使用回溯法进行解决,先记录下每个数字对应的字母有哪些.使用一个HashMap进行记录(key为数字,value为字母)2.注意传入的数字有可能有两个,也有可能有更多.3.如果传入的数字长度是0,则直接返回空即可对于传入的数字进行分解,先取第一个数字比如题目"23"中的2,然后再得到2对应的字母组合4.对字母组合中的每一个字符都进行遍历,然后再添加数字中的下一个数字,重复此操...

2019-11-01 19:51:45 484

原创 LeetCode 1239串联字符串的最大长度(回溯法)

class Solution { public int maxLength(List<String> arr) { }}解决:可以先定义一个int类型的来记录当前最长的长度.1)回溯法进行遍历判断2)从list中第一个字符串开始,往后面添加list中下一个(j)字符串先判断是否含有重复字符,若含有则直接返回,返回后list删除掉刚...

2019-10-31 20:53:13 1381

原创 LeetCode 1238 循环码排列(递归)

class Solution { public List<Integer> circularPermutation(int n, int start) { }}解决:因为题目要求相邻两位的二进制表示形式只有一位不一样,首尾的二进制表示形式也只有一位不一样并且还规定了该排列以哪一个值开头.通过对题目示例分析可以看出当以0为开头时当n...

2019-10-31 20:38:11 309

原创 LeetCode 1237找出给定方程的正整数解

如果你想自定义测试,你可以输入整数 function_id 和一个目标结果 z 作为输入,其中 function_id 表示一个隐藏函数列表中的一个函数编号,题目只会告诉你列表中的 2 个函数。你可以将满足条件的 结果数对 按任意顺序返回。class Solution { public List<List<Integer>> findSolution(Cu...

2019-10-31 20:24:45 194

原创 Servlet三种创建/接口里面的方法/生命周期

一.URL打开百度首页随便搜索内容后,会出现https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=a&rsv_pq=c122c9dd0020c7c0&rsv_t=bea4FGcgHWh%2BkVEvNQ0jdx2x%2FoTwRzLc6DNMLetuwFp...

2019-09-26 18:54:51 350

原创 LeetCode (数组)两数之和

问题描述首先自己拿到题目还是想到暴力解法就是用两个for循环的方式,进行n*n遍历,如果两数结果相加等于target就返回 int last = 0; //用来记录target减去第一个数字后的剩余值 比如6-2,剩余的4就是last for(int i = 0;i < nums.length;i++){ last = ta...

2019-07-23 12:52:38 397

原创 课程设计/动态规划/JAVA/最小购物费用

采用java语言,使用了集合(数组+链表+哈希表)来进行存储.动态规划.(XATU)问题陈述:一朵花的价格是2元。一个花瓶的价格是5 元。为了吸引顾客,商店提供了一组优惠商品价商品有2种,依次分别为编号,需要购买的数量,单价优惠方案有2种,三朵花的价格是5元而不是6元.购买1个花和两个花瓶只需要十元.存储思路数组ArrayList里面存储的都是LinkedList数组存放对应的...

2019-06-29 20:28:20 1860

原创 07 MyBatis的懒加载和缓存机制

一、先说说懒加载吧为什么要用它?当嵌套查询多层的时候,数据量非常大,而内存有限的情况下,使用它久能够节省内存.怎么用?设置在全局配置文件(mybatis-config.xml文件)的settings标签中 <settings> <setting name="lazyLoadingEnabled" value="true"></setti...

2019-06-19 16:35:23 344

原创 06 MyBatis强大特性 映射语句

一、resultMap(用来描述如何从数据库结果集中加载对象)用处:1.类似于全局配置文件中的Alias(别名)一样,在文件中定义后,在后面可以意使用.省去了多余的重复代码.2.可以解决数据库中数据的字段名和java对象中属性名不对应的问题.3.可以解决嵌套语句的映射问题.如何使用:在mapper标签里面,使用resultMap标签.这个id是它的标识,也就是名字,在被其他语句使用的时...

2019-06-18 22:14:10 151

原创 05 MyBatis强大特性 动态SQL

MyBatis 的强大特性之一便是它的动态 SQL,例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态SQL 这一特性可以彻底摆脱这种痛苦动态SQL都是应用在映射文件中的我这里使用的是mybatis-config.xml全局配置文件,里面添加映射mapper文件,来操作Order这个类.这是全局配置文件1.使用了别名,这样子在映射文件中填写返回类型的时...

2019-06-11 18:42:38 1044

原创 04 MyBatis全局配置文件

DTD(Document Type Defination)文件类型定义,先导入这个,然后xml就会根据这个生成和检验xml文件.<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"&gt...

2019-06-11 15:13:56 117

原创 03 MyBatis通过注解管理数据库

MyBatis注解方式就是讲SQL语句直接写在接口上.优点:对于需求简单的系统,效率较高缺点:当SQL有变化时都需要重新编译代码.1.添加注解最简单的注解有四种 @Select @Insert @Delete @Update这里演示Select和Delete!!都是最简单的操作,复杂的后面再讲2.编写接口我这里要操作的是这个表所以返回的就是这个User 自己建立的类,用来...

2019-06-03 16:44:30 129

原创 02 MyBatis基本认知和基本使用(xml)

1)MaBatis介绍它是一个持久层框架、ORM,它支持定制化 SQL、存储过程以及高级映射.避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.使用简单的 XML 或注解来配置和映射原生类型、接口和 Java对象为数据库中的记录持久层框架:持久层:采用DAO模式,建立实体类和数据库表映射(ORM映射)。也就是哪个类对应哪个表,哪个属性对应哪个列。持久层的目的就是,完成对象数据和...

2019-06-03 14:49:03 139

原创 01 JDBC步骤及问题总结

1)创建一个maven项目点击这个archetype-quickstart能快速生成:带junit单元测试依赖声明的pom.xml带src/main/java的代码目录和一个名为APP的类带src/test/java的测试目录和一个名为APP的类转自https://blog.csdn.net/doudou_demo/article/details/80047606#commentBox...

2019-05-31 16:36:30 117

原创 Ideal maven自己配置的本地仓库无效问题解决

在创建maven项目时,明明自己配置了本地仓库可是在创建maven项目时,它显示的仓库还是在C盘的仓库解决办法:进入Maven home directory在安装Ideal的目录下面进去plugins–>maven–>lib然后进去刚才那个Maven Home Directory再进去conf然后在这里的settings.xml进行修改即可....

2019-05-31 13:05:29 6318

原创 ideal下载Maven\配置路径\仓库\如何使用

1.下载压缩文件http://maven.apache.org/download.cgi2.解压到目录中3.一般就是在当前目录建立一个localWarehouse(本地仓库) 要不然它就默认下载到C盘了.4.配置环境变量我的电脑–>高级系统设置–>环境变量5.配置setting文件(本地仓库和镜像)打开刚才解压的目录,然后打开conf再打开修改之前...

2019-05-31 12:54:52 1110

原创 MySQL修改字符集编码为utf8

首先呢,你需要查看下自己当前的编码格式(我这里是5.6版本)在这里使用到的命令:show variables可以查看各种各样的参数,后面加上like表示字符串匹配意思就是在所有项中只挑选出带有引号中字符串的项,同样的也有not like%:表示0个或者多个字符串_:只能表示单个字符使用set character_set_server=utf8;来进行设置但是这样子在你重新启动...

2019-05-30 20:46:03 463 1

原创 Git第一次使用配置信息,第一次提交代码,分支操作

1.下载githttp://www.wmzhe.com/soft-38802.html下载完成后当你在任何一个目录点击鼠标右键时,会出现GIT GUI HereGIT Bash Here上面那个是图形用户界面,底下这个是linux命令模式界面.推荐使用第二种,因为在以后使用linux过程中比较方便。2.下载远程仓库代码到本地可以点击Download ZIP 然后解压到自己使用的目...

2019-05-28 11:19:05 927

原创 JavaScript关于函数必须必须必须知到的基础

一、声明(两种方式)第一种:function () { … }是一个匿名函数,它没有函数名。但是,这个匿名函数赋值给了变量a,所以,通过变量a就可以调用该函数。第二种:JavaScrpit中,函数也是一个对象,函数名f可以视为指向该函数的变量。"use strict" //严格模式var a = function () { //第一种 console.log('a');...

2019-05-27 23:03:21 363

原创 Win10 MySQL下载、DOS下进行安装、配置变量以及第一次登陆需要注意什么

1.下载安装压缩包,下载这一个https://downloads.mysql.com/archives/community/记住你要下载的目录 下载后是这个样子 我的在G盘自己创建的文件夹下面2.配置环境变量 一共是两步1) 第一个要配置的是变量MYSQL_HOME ,填的就是刚才存放MYSQL压缩包的目录2)修改系统变量下面path变量 点击编辑后给后面添加上%M...

2019-05-24 16:50:07 146

原创 线程名字为A B C 请按ABC顺序打印出十遍ABC

/** * Description: * * @Author Fann */public class PrintABC implements Runnable { StringBuffer value; //记录ABC private volatile Integer time ; //来记录最多打印十次 private volatile Integer n...

2019-02-24 17:52:35 213

原创 哲学家就餐问题

哲学家就餐问题问题:一共五个筷子,五个哲学家,同时拿起两个筷子才能进行就餐.哲学家要么进行思考要么进行就餐.所以就用一个类来表示筷子Chopstick{里面有两个属性,一个记录筷子ID,一个记录筷子状态}. 用一个Chopstick数组来记录五个哲学家./** * Description:哲学家就餐问题 * * @Author Fann */public class Dinne...

2019-02-24 17:51:23 1462

原创 线程池学习(Executor/ExecutorService/ThreadPoolExecutor/FutureTask)

为什么要有线程池?线程的创建与销毁要耗费时间.而创建并销毁的过程肯定会消耗内存,在java中,内存是特别宝贵的.所以就提出了线程池的概念.线程池: 使用缓存池的策略让线程执行完任务后不立即销毁而是等待下一个任务, 方便管理线程,也可以减少内存的+消耗.两个接口Executor和ExecutorServiceExecutor就一个方法execute(Runnable)就...

2019-02-24 17:41:04 399

原创 ConcurrentHashMap

ConcurrentHashMappublic class ConcurrentHashMap&lt;K, V&gt; extends AbstractMap&lt;K, V&gt; implements ConcurrentMap&lt;K, V&gt;, Serializable 它实现了ConcurrentMap这个接口.这个接口有四个方法putIfAbs...

2019-02-19 18:34:53 279

原创 最简单的生产者消费者模型(ReentrantLock锁及其Condition机制)

一个生产者 一个消费者 仓库大小为1消费者类public class Consumer implements Runnable{ List&amp;lt;Integer&amp;gt; cache = new ArrayList&amp;lt;&amp;gt;( ); ReentrantLock lock; Condition notFull; Condition notEmpty; ...

2019-02-17 15:36:10 375

原创 最简单的生产者消费者(wait/notifyAll 实现)(1 生产者1 消费者 仓库大小为1)

一共三个类:Consumer Producer Main一个生产者 一个消费者 一个仓库仓库大小为1public class Consumer implements Runnable{ List&amp;lt;Integer&amp;gt; cache; Integer num = 10; //控制次数,否则会无限循环下去无休止. public Consumer(List&amp;lt;...

2019-02-17 15:30:02 217

原创 JVM和JMM

1.Java内存区域划分为五个区域方法区:存储的是虚拟机加载的类和一些常量 static修饰的变量堆:JVM启动的时候,存放java的实例对象虚拟机栈:java的方法内存模型. 叫做栈帧. 每个栈帧里面存放的有(局部变量/基本的数据类型变量/引用类型的地址).程序计数器:线程的私有数据 ,用来记载下一条指令的地址.本地方法栈:native2.Java Memory Model(JMM...

2019-02-13 20:07:24 1089

原创 Synchronized和Volatile

1.加在动态方法前面 相当于锁定的是这个类的对象, 相当于T.Class 加在代码块和方法前面,相当于锁定的是对象,用this2.一个类中,有的方法被锁定 有的没有被锁定 需要考虑清楚业务.加锁的代码运行时,其他没加锁的有可能也访问某些数据,会有时间差.叫脏读(ditry read)3.Sychronized支持重入锁, Sychronized A 里面可以调用Sychronized...

2019-02-13 20:06:11 103

原创 ReentrantLock

1.使用syn锁定遇到异常,jvm会自动释放锁,但是必须要必须要自己手动释放锁 lock.lock(). lock.unlock();一般写在finally里面.2. 可以进行try lock 尝试锁定。try lock 可以指定时间,可以根据结果来执行不同的业务逻辑.3.lock.interruptibly() 可以对interrupt()方法做出响应. lock.lock()就只能...

2019-02-13 20:05:51 102

原创 线程的状态以及状态转换

线程的五种状态以及状态转换``新建状态(new)用new语句创建的线程处于新建状态,此时它和其他Java对象一样,仅仅在堆区中被分配了内存.它会一直保持这个状态直到启动了start()方法.就绪状态(Runnable)当一个线程对象启动了start()方法后,该线程就处于就绪状态,Java虚拟机会为它创建方法调用栈和程序计数器.处于这个状态的线程位于可运行池中,等待获得CPU的使用权...

2019-02-02 18:21:58 2143

原创 多线程中常用的几种方法详解(run start yield join sleep....)

在此之前需要借助一个类,RunnableDemo,该类实现了Runnable接口.public class RunnableDemo implements Runnable { @Override public void run() { System.out.println(Thread.currentThread().getName()+&quot; Runnable...

2019-02-01 20:37:43 444

原创 多线程的三种创建方式详讲 以及具体使用方法和区别(Thread Runnable Callable)

多线程第一种创建方式继承Thread类package CreatThread;/** * Description:创建多线程类的第一种方式, 继承Thread类 * Thread是一个类,它实现了Runable接口 * 使用方式:ThreadDemo threadDemo = new ThreadDemo(); * threadDemo.s...

2019-02-01 17:57:04 635

原创 猜拳游戏,利用面向对象

猜拳游戏项目项目功能点: 1)猜拳游戏,每一把游戏进行三局,可以玩多把,每一局赢者积一分,输者不扣分,平局不计分,三局决胜负。 2)两人进行猜拳游戏。可以随机选取要比赛的对手。考察知识点: Java类和对象设计思路: 1) 有两方,甲方:玩家(Player) 乙方:电脑(Computer)模拟 进行猜拳游戏 2) 猜拳开始:赢者积一分,平局不计分,输者...

2018-12-11 12:40:16 835

空空如也

空空如也

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

TA关注的人

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