java
文章平均质量分 74
文采斐然
自由向上,爱钻研
展开
-
字符串含有字符各不相同
字符串的字符各不相同 前一段,看到一个问题是一个字符串的所有字符都各不相同。在这里给出几种常见的解法。 首先,最容易想到的就是一个桶排序的算法。直接给出字符串所有可能出现的字符的个数个桶,然后遍历字符串,没个字符出现一次就给相应的桶内数字加一。最后统计看有没有桶的数字是超过1的就可以知道结果了。 然后,我们还可以直接遍历字符串,每次遍历到一个字符我们就从头开始遍历,然后原创 2017-01-18 16:13:53 · 617 阅读 · 0 评论 -
java线程池(3)-线程池创建新线程的过程(原理)
java线程池(3)-线程池创建新线程的过程(原理) 前面的两期对于线程池的工作原理有了个大概的了解。那么线程池创建线程的过程是怎么样的呢? 首先,我们必须知道,线程池不会把我们传入的实现了Runable接口的类当做一个线程直接的启动。线程池会自己创建线程,然后去执行我们的所传入的任务的。会根据当前的线程池的状态和线程池中已有的线程池数量来决定是否创建一个新的线程来执行我们传入原创 2017-12-19 19:35:50 · 3102 阅读 · 0 评论 -
java线程池(4)-线程池关闭的过程(原理)
线程池的关闭转载 2017-12-19 20:04:24 · 2262 阅读 · 0 评论 -
丑数
面试题丑数 丑数定义:所有因子中只包含2,3,5的数就称之为丑数。例如 6,8都是丑数,但是14就不是丑数了。因为14的因子里面有7。习惯上我们认为第一个丑数是1。求按照从小到大的顺序第N个丑数。 我们首先分析一下,因为丑数的因子里面只有2,3,5。所以一个丑数的组成必然是这样的,丑数 x = 2^a*3^b*5^c; 如果可以看明白这个等式的话,我们接下来的工作就简单原创 2017-08-23 15:39:21 · 229 阅读 · 0 评论 -
那些年我们学过的排序算法
那些年我们学过的排序算法 在我们校园招聘的时候,大多数的面试官对于一个校招生都可能会问过类似的问题。比如,快排的思路呀,快排的实现呀。当然还有其他的一些经典排序吧! 可能会有很多的同学会想到问这些有什么用吗?因为大多数的时候我们不需要自己写这些排序的呀! 主要问题有两个: 1. 这些你可能都不知道。 2. 不是为了问你具体的实现。 这些东西其实仅仅是为了看一下你是否真的努力学原创 2017-12-05 19:41:16 · 198 阅读 · 0 评论 -
java23种设计模式(1)-命令模式
java23种设计模式(1)-命令模式 基本所有的程序员都听说过设计模式,可是有不小一波的新手对于设计模式不是很清楚哟!今天就来聊聊设计模式的命令模式。 所谓命令模式,我们首先来看一下什么是命令。通常情况下我们发出命令(信号),然后我们就看到了变化。这个具体是怎么变化的,我们作为命令的发出者很多时候不是很关心的。就像是老板一样只关心结果。 那我们来看看命令模式都有哪几部分组成!我们原创 2017-12-07 18:27:39 · 189 阅读 · 2 评论 -
java23种设计模式(4)-访问者模式
java23种设计模式(4)-访问者模式 相信大家遇到过这种情形的,对于同一块基本不动的数据,但是有不同的用户来访问,这个时候返回的数据还不是一样的?举个简单的例子,在我们的工作中很多时候是需要对国内的城市和地区做一个城市的列表。或者获取城市的排行榜类似的功能。对于城市这种数据基本很少动的数据。 数据的内容基本不变,但是呢不同的访问者需要的数据顺序或者是数据结果并不是很一致。原创 2017-12-25 19:50:39 · 193 阅读 · 0 评论 -
一个数的阶乘结果尾部会有多少个0?
一个数的阶乘结果尾部会有多少个0? 这个只是个稍微有点意思的面试题,亦或者是笔试题! 首先,我们拿到这个问题的第一个想法,0是哪里来的?原创 2017-12-26 10:23:24 · 2368 阅读 · 0 评论 -
在其他数都出现k次的数组中找到仅出现过一次的数字
在其他数都出现k次的数组中找到仅出现过一次的数字 废话不多说,直接上题目:给定一个数组,在这个数组中有呀一个数只出现了一次,其他的数出现次数都是K(k>1),请返回这个数字。 首先,我们考虑一下这个问题。对于一个K进制的数字。如果有K个K进制的数字相加的话。会是一个什么样的结果!下图是7个7进制数字无进位相加的结果。 这里我们发现如果K个K进制的数字无进位相加的话原创 2017-12-27 19:43:37 · 541 阅读 · 1 评论 -
java线程池(1)初识线程池
java线程池(1)初识线程池 对于用了java很久的程序员来说,java线程池一般都不陌生。但是对于刚开始使用java的人,对java线程池的了解可能就不是那么多充分了。 首先,我来说一下为什么需要线程池,多线程不就可以了吗?什么时候需要我就创建一个线程。不就可以了吗? 如果我们先要了解线程池就必须首先了解线程这个东西!线程是什么?线程是最小原创 2017-12-10 15:35:31 · 482 阅读 · 0 评论 -
java线程池(2)-线程池添加任务的过程(原理)
上一期简单的聊了一下线程池的创建。这一期我们就,稍微熟悉一下线程池执行任务的过程吧! 线程池的工作原理是怎么样的呢? 首先,我用图来说明吧! 这里可以看到有一个任务队列,然后还有一个工作的线程池。今天主要将的就是向任务队列中添加任务的过程! 对于线程池我们上一期是做了一个稍微的解释的。我们构建线程池的时候,无论我们传入队列或者是不传入最后都会有一个队列的。那么原创 2017-12-11 19:42:01 · 5335 阅读 · 0 评论 -
不用任何的算数运算符实现加法
不使用任何算数运算符实现加法 这里的算数运算符表示的是算术运算符 含义(示例)+(加号) 加法运算 (3+3)–(减号) 减法运算 (3–1) 负 (–1)*(星号) 乘法运算 (3*3)/(正斜线) 除法运算 (3/3)%(百分号) 求余运算10%3=1 (10/3=3·······1)^(乘方) 乘幂运算 (3^2)!原创 2017-01-18 17:00:29 · 1372 阅读 · 0 评论 -
论设计模式之配接器模式
配接器模式, 适配器模式在很多书籍中,有人称为配接器模式。首先,我们来看一下这个模式的定义(定义摘抄自headfirst,这本书不错顺便推荐一下),适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器模式让原来接口不兼容的类可以合作无间。 看完上面的定义相信大家已经大概明白什么意思了。通俗的说就是客户要的数据你都有,但是不在同一个对象中,或者说是这个对象并原创 2017-02-24 11:11:58 · 416 阅读 · 0 评论 -
论设计模式之观察者模式
设计模式之观察者模式很多多人都知道设计模式,但是大多数初学者只是知道设计模式,但是却不知道如何使用或者说是在何种情况下使用相应的设计模式!今天我们谈一谈观察者模式,这个设计模式的存在有和用处和定义,以及在什么时候需要使用该模式。首先,我们谈一下定义:定义了对象之间的一对多依赖,这样一来,当一个对象状态发生改变的时候,它的所有依赖着都会受到通知并自动更新。可能还是不是很清楚应用场景哈原创 2017-03-23 15:57:02 · 239 阅读 · 0 评论 -
数组中,除了两个数字外其他数字都是成对出现,找出来着两个数字
数组中,除了两个数字外其他数字都是成对出现,找出来着两个数字前一段,同学面试问了一个问题就是标题上的这个问题了。想了一下最起码有一下几种做法。做法一: 可以对数组进行排序,这样如果数组是成对出现的,那么这相同的数字下标一定相邻,这样只要遍历一遍数组就可以知道是哪两个数字了。这里可以这么做只需要知道当前数字和当前数字前面的数字不同,而且当前数字和当前数字后面的数字也不同,那么当前数字原创 2017-02-08 18:31:22 · 1394 阅读 · 1 评论 -
idea thymeleaf 表达式模板报红波浪线
idea thymeleaf 表达式模板报红波浪线学习spring boot 的过程中随着velocity的缺点逐步暴露,比如前后端分离做的不好,即使接口前后端已经定好,但是前后端去分离,做的还是不是很好,仍然需要后端人员来维护模板。所以应运而生的就是新的模板 thymeleaf,这个模板里的语法都是前端的语法。并没有多余的模板语法。或者说单独的模板语法,但是我们很多同学用idea的时候发原创 2017-08-02 14:37:25 · 19072 阅读 · 18 评论 -
java实现从左到右打印二叉树
java实现从左到右打印二叉树对于二叉树相信大家都很熟悉了,作为一个程序员都是学过数据结构的。对于二叉树的遍历大家应该都不陌生吧!我们都试过前序遍历,中序遍历,后续遍历。但是我们很少去从左到右打印一棵二叉树! 刚一接触可能有点蒙哈!其实,这个东西并不麻烦也不神奇,我们下面先说一下这个思路和流程哈!首先,我们拿到这颗二叉树会拿到根节点,也就是root,我现在用一个三层的树做例子:原创 2017-08-02 21:13:42 · 1756 阅读 · 2 评论 -
有序数组中和为定值的数字对与和为定值的连续正整数序列
有序数组中和为定值的数字对与和为定值的连续正整数序列首先,对于这样的连续序列一般情况下我们是不会选择双层循环遍历的方式的。原因十分简单这个对时间复杂度的优化太差了。那么我们对于这样的定值和连续序列的问题怎办呢?我们从题目中可以获取一个很重要的信息,就是对于我们的正整数序列,其实也是有顺序的。这样我们就有一部分头绪了。这里我们先讨论第一个问题,都是对于定位的运用。因为数组是有序的,我们可以假设数组是原创 2017-08-17 19:23:25 · 505 阅读 · 0 评论 -
java23种设计模式(2)-责任链模式
java23种设计模式(2)-责任链模式 最近在公司做业务,发现有一个很麻烦的事情。什么麻烦事呢。楼主遇到了,就说出来让大家开心一下。哈哈! 事情是这样的,在我公司的网上发布一条消息。需要进行如下的操作!第一步:过滤所有的敏感词(部分词不方便发出来,以免和谐)。第二步:看一下这个人今天发布了多少条消息!(一天以内有次数限制)第三步:校验一下这人的手机号是不是敏感了(比如打不通,原创 2017-12-08 16:53:34 · 182 阅读 · 0 评论 -
LeetCode 11 题 盛水最多的容器
LeetCode 11 题 盛水最多的容器 废话不多说,先是题目描述:给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n...原创 2019-03-26 17:16:29 · 227 阅读 · 0 评论