自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

牛肉干的博客

老师,你怎么这么不上进呢!

  • 博客(51)
  • 资源 (3)
  • 问答 (1)
  • 收藏
  • 关注

原创 程序化生成 jenkins config.xml

因为最近项目需求写了一个用来生成构建jenkins job的工具包使用这个工具包可以根据需求定制化生成config.xml,然后可以调用jenkins api程序化生成job 及构建jobgithub地址使用maven 可以直接在pom.xml文件中引入如下依赖<dependency> <groupId>com.github.csxiaosha...

2019-09-06 17:44:46 1602

原创 AI识别 图片识别 微信小程序(手写OCR)

使用腾讯云手写OCR API的微信小程序GitHub地址主要功能:识别图片形式的手写笔记并展示 //appid等作为全局变量定义在了app.js里 //使用时需将相应字段添加到app.js文件中 globalData: { appid: "", secretid: "", secret: "" }主界面识别功能修改存储...

2019-05-22 09:26:47 4928

原创 入职钉钉接近半年 ,谈谈自身的landing体会

目录一、适应新环境二、 工作与学习1. 拥抱变化a. 业务方向变化b. 师兄跑路2. 干杂活a. 摆正心态b. 主动性强,打造个人品牌3. 兼顾学习一、适应新环境到了一个新环境里,身边的一切都比较陌生,与同事和领导都不太熟,一开始说话说不到一起都比较正常。在和同事吃饭的时候,多听多参与聊天,主动一些,逐渐熟悉起来就好了。另外,我的工作台base地在杭州,入职是从北京来到杭州,到了一个陌生的城市。除了几个同学,也没有其他的熟人...

2022-02-26 20:51:58 722

原创 读聪安快速成长系列的总结

开始认知升级1.思考脑与反射脑一个人一天的行为中,5% 是非习惯性的,用思考脑的逻辑驱动;95% 的是习惯性的,用反射脑的直觉驱动。自己一天中很多判断、观点与行为,都是靠着直觉、习惯产生的。比如学习一会自动拿起手机,漫无目的的滑动手机。强化我们 95% 的直觉习惯,变成更高质量的直觉习惯。专注输入:做好只字不差阅读,只字不差地听一字不差的阅读和听,才能更深层次领略作者的逻辑,产生自己的逻辑思考,考虑自己的逻辑和作者的逻辑差异和共同之处在哪里专注输出:定制做ppt、写文章进行分

2022-02-26 20:41:45 217

原创 20.高度最小的BST

题目描述对于一个元素各不相同且按升序排列的有序序列,请编写一个算法,创建一棵高度最小的二叉查找树。给定一个有序序列int[]vals,请返回创建的二叉查找树的高度。模拟递归建树的过程计算高度 即可import java.util.Arrays;public class MinimalBST { public int buildMinimalBST(int[] ...

2019-08-02 21:08:26 144

原创 19.有向路径检查

题目描述对于一个有向图,请实现一个算法,找出两点之间是否存在一条路径。给定图中的两个结点的指针DirectedGraphNode*a, DirectedGraphNode*b(请不要在意数据类型,图是有向图),请返回一个bool,代表两点之间是否存在一条路径(a到b或b到a)。遍历邻接矩阵 递归public class Path { public boolean...

2019-08-01 19:59:16 101

原创 18.二叉树平衡检查

题目描述实现一个函数,检查二叉树是否平衡,平衡的定义如下,对于树中的任意一个结点,其两颗子树的高度差不超过1。给定指向树根结点的指针TreeNode*root,请返回一个bool,代表这棵树是否平衡。关于树的基本就是递归了public class Balance { public boolean isBalance(TreeNode root) { ...

2019-08-01 19:39:09 124

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

判断对象是否存活1.引用计数法2.可达性分析垃圾回收算法1.标记-清除算法(Mark-Sweep)2.复制算法(Copying)3.标记整理算法(Mark-Compact)4.分代收集算法(Generational Collection)HotSpot的gc算法实现1.枚举根节点 解决gc root问题2.安全点 解决何时进行gc的问题3.安全区域 一...

2019-08-01 16:50:21 101

原创 内存管理

运行时数据区域方法区 堆 虚拟机栈 本地方法栈 程序计数器常说的内存中的栈 即指虚拟机栈本地方法栈为虚拟机使用到的native方法服务java堆(Garbage Collected Heap)是被所有线程共享的一块内存区域,几乎所有的对象实例都在堆中存储;堆可以细分为新生代和老年代,再细致些可以分为 Eden空间、From Survivor空间、To Survivo空间等。方法...

2019-08-01 15:05:22 68

原创 17.猫狗收容所

题目描述 有家动物收容所只收留猫和狗,但有特殊的收养规则,收养人有两种收养方式,第一种为直接收养所有动物中最早进入收容所的,第二种为选择收养的动物类型(猫或狗),并收养该种动物中最早进入收容所的。 给定一个操作序列int[][2]ope(C++中为vector<vector<int>>)代表所有事件。若第一个元素为1,则代表有动物进入收容...

2019-07-30 20:41:23 142

原创 16.双栈排序

题目描述请编写一个程序,按升序对栈进行排序(即最大元素位于栈顶),要求最多只能使用一个额外的栈存放临时数据,但不得将元素复制到别的数据结构中。给定一个int[]numbers(C++中为vector&ltint>),其中第一个元素为栈顶,请返回排序后的栈。请注意这是一个栈,意味着排序过程中你只能访问到最后一个元素。测试样例:[1,2,3,4,5]返回:[5,...

2019-07-02 20:24:58 128

原创 随手记-2019.6.30

1.事务 丢失更新问题(数据写问题)悲观锁 不怎么用 数据库锁的机制,在sql语句后 for update乐观锁 javaBean对象加新的属性 version(相当于加版本号,事务提交时比较版本号,版本号不相等,侧不提交事务,抛出异常)2.数据库 读问题 脏读 不可重复读等设置数据库隔离级别来解决上述问题共享锁 又叫读锁,其他事务可以继续加共享锁,但是不能加排它锁排...

2019-06-30 17:56:50 179

原创 15.两个栈实现队列

题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。public class Solution { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer> stack2 = new Stack<Integer>()...

2019-06-25 18:33:59 82

原创 14.集合栈

题目描述请实现一种数据结构SetOfStacks,由多个栈组成,其中每个栈的大小为size,当前一个栈填满时,新建一个栈。该数据结构应支持与普通栈相同的push和pop操作。给定一个操作序列int[][2]ope(C++为vector&ltvector&ltint>>),每个操作的第一个数代表操作类型,若为1,则为push操作,后一个数为应push的数字;若为...

2019-06-25 18:31:23 140

原创 13.回文链表

题目描述请编写一个函数,检查链表是否为回文。给定一个链表ListNode*pHead,请返回一个bool,代表链表是否为回文。测试样例:{1,2,3,2,1}返回:true{1,2,3,2,3}返回:false翻转比较先遍历一遍翻转存到新的链表中,再遍历一遍比较即可 时间复杂度o(n),空间复杂度o(n) public boolea...

2019-06-19 22:59:43 84

原创 12.链式A+B

有两个用链表表示的整数,每个结点包含一个数位。这些数位是反向存放的,也就是个位排在链表的首部。编写函数对这两个整数求和,并用链表形式返回结果。给定两个链表ListNode*A,ListNode*B,请返回A+B的结果(ListNode*)。时间复杂度o(n) public class ListNode { int val; ListNo...

2019-06-19 22:20:00 103

原创 11.链表分割

编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前给定一个链表的头指针 ListNode*pHead,请返回重新排列后的链表的头指针。注意:分割以后保持原来的数据顺序不变。 public ListNode partition(ListNode pHead, int x) { // write code here ...

2019-06-16 19:00:16 97

原创 10.访问单个节点的删除

实现一个算法,删除单向链表中间的某个结点,假定你只能访问该结点。给定待删除的节点,请执行删除操作,若该节点为尾节点,返回false,否则返回true public class ListNode { int val; ListNode next = null; ListNode(int val) { th...

2019-06-16 17:00:40 111

原创 9.链表中倒数第K个节点

输入一个链表,输出该链表中倒数第k个结点。一种直接的方法是,遍历两次链表可以解决,但是肯定不是最佳方法。第二种可以使用两个指针,让两个指针相距k个节点,使两个指针同步移动,当右指针到链表尾节点时,左指针正好指向第k个节点。时间复杂度o(n) public class ListNode { int val; ListNode next = n...

2019-06-15 19:38:43 102

原创 8.翻转子串

题目描述假定我们都知道非常高效的算法来检查一个单词是否为其他字符串的子串。请将这个算法编写成一个函数,给定两个字符串s1和s2,请编写代码检查s2是否为s1旋转而成,要求只能调用一次检查子串的函数。给定两个字符串s1,s2,请返回bool值代表s2是否由s1旋转而成。字符串中字符为英文字母和空格,区分大小写,字符串长度小于等于1000。测试样例:"Hello world","wo...

2019-06-13 21:05:08 194

原创 7.清除行列

请编写一个算法,若N阶方阵中某个元素为0,则将其所在的行与列清零。给定一个N阶方阵int[][](C++中为vector<vector><int>>)mat和矩阵的阶数n,请返回完成操作后的int[][]方阵(C++中为vector<vector><int>>),保证n小于等于300,矩阵中的元素为int范围内。</int&gt...

2019-06-12 22:05:48 160

原创 6.像素翻转

题目描述有一副由NxN矩阵表示的图像,这里每个像素用一个int表示,请编写一个算法,在不占用额外内存空间的情况下(即不使用缓存矩阵),将图像顺时针旋转90度。给定一个NxN的矩阵,和矩阵的阶数N,请返回旋转后的NxN矩阵,保证N小于等于500,图像元素小于等于256。测试样例:[[1,2,3],[4,5,6],[7,8,9]],3返回:[[7,4,1],[8,5,2],[9...

2019-06-11 19:58:24 163

原创 5.基本字符串压缩

利用字符重复出现的次数,编写一个方法,实现基本的字符串压缩功能。比如,字符串“aabcccccaaa”经压缩会变成“a2b1c5a3”。若压缩后的字符串没有变短,则返回原先的字符串。给定一个string iniString为待压缩的串(长度小于等于10000),保证串内字符均由大小写英文字母组成,返回一个string,为所求的压缩后或未变化的串。做这道题的时候,首先想了下自己new ...

2019-06-10 20:22:14 198

原创 4.空格替换

请编写一个方法,将字符串中的空格全部替换为“%20”。假定该字符串有足够的空间存放新增的字符,并且知道字符串的真实长度(小于等于1000),同时保证字符串由大小写的英文字母组成。给定一个stringiniString为原始的串,以及串的长度 intlen, 返回替换后的string。如果不考虑空间问题,直接遍历一遍,将原有字符串复制到新的字符串那种即可,时间复杂度为o(n),空...

2019-06-09 11:08:38 107

原创 3.确定两串乱序同构

给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。这里规定大小写为不同字符,且考虑字符串中的空格。给定一个stringstringA和一个stringstringB,请返回一个bool,代表两串是否重新排列后可相同。保证两串的长度都小于等于5000。看完题目后,第一想法就是就是和前两道题目有点像,用散列可以很好的解决问题。将两个字符串分别散列到...

2019-06-08 15:19:50 181

原创 2.原串反转

请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量)。给定一个stringiniString,请返回一个string,为翻转后的字符串。保证字符串的长度小于等于5000。题目说 不能使用额外的数据结构和存储空间,则不能使用java,因为java String是不可变的,只能通过新开辟空间来操作。如果不考虑这些 用java的话 ...

2019-06-07 11:04:38 167

原创 1.确定字符互异

请实现一个算法,确定一个字符串的所有字符是否全都不同。这里我们要求不允许使用额外的存储结构。给定一个stringiniString,请返回一个bool值,True代表所有字符全都不同,False代表存在相同的字符。保证字符串中的字符为ASCII字符。字符串的长度小于等于3000。首先,不看条件不允许使用额外的数据结构的话,我最先想到的就是使用hashmap,遍历一遍,存储每个字符一...

2019-06-07 10:21:52 157

原创 排序算法总结

时间复杂度O(n^2)冒泡排序 选择排序 插入排序O(n*logn)快速排序 归并排序 堆排序 希尔排序O(n)基数排序 计数排序空间复杂度案例1改进后的堆排序 比插入排序好时间复杂度为n*longk案例2非递归版本的堆排序保证空间复杂度为o(1),排序后比较若不要求空间复杂度为o(1),直接使用hash,时间复杂度为...

2019-06-02 14:19:51 88

转载 经常会遇到的排列组合算法

题目:求(1)一组数字的全排列(2)一组数字中某几个数字的组合一、排列算法:全排列是将一组数按一定顺序进行排列,如果这组数有n个,那么全排列数为n!个。现以{1, 2, 3}为例说明如何编写全排列的递归算法。 如下图所示:上图中,第一层S1表示第一个数分别与第1、2、3个数交换位置,如123是1和第一个数1交换,213是1和第二个数2交换,321是1和第三个数交换。第二层S2是第二个数...

2019-04-12 22:51:42 640

原创 讨论下Comparable和Comparatorj接口(个人目前看法)

Comparable接口public interface Comparable<T> { /* @param o the object to be compared. * @return a negative integer, zero, or a positive integer as this object * ...

2019-04-11 22:47:06 149

原创 java源码之PriorityQuene

Java中PriorityQueue通过二叉小顶堆实现,可以用一棵完全二叉树表示。刚刚做到剑指offer最小的K个数,最开始用了快速排序的方式做的,但是时间复杂度有点高,看了评论说是用堆排序要好些,看到了优先队列是用堆实现的,所以这里简单介绍下优先队列对于堆排序的数据结构 实现形式不懂的可以先看看 数据结构的书看下优先队列一些基本的数据结构,一个默认的初始化容量 object的数...

2019-04-11 22:21:48 140

转载 谈谈象棋的基本功《三》棋谱篇

谈谈象棋的基本功《三》棋谱篇棋谱篇首先,这个话题太大,可能要分几个话题来说。其次我不是神仙,不可以什么都知道。我也不是圣人,不可能说的都是真理。我只谈一谈我个人的经验和想法。说这么个话题,无疑是要被拍砖的。我有心理准备。内容较多,如有硬伤,大家原谅。第一个话题关于打棋谱的一些基本概念。(1)打棋谱的必要性这个就不多说了,打一打棋谱,看看从古到今那些大师...

2019-04-04 22:54:31 1471

转载 谈谈象棋的基本功《二》复盘篇

谈谈象棋的基本功《二》复盘篇复盘篇上次谈到象棋基本功中的残局,今天谈谈复盘能力的问题。正式说复盘问题之前,对前面说的残局问题,做几点补充。1,做残局习题的目的不在于吧习题解出来,而在于解出来以后,不断研究那个过程。习题解出来就扔到一边再也不看了,以为这就完事了,进步将是非常慢的。2,千万不要以为我什么残局习题都会解了,我就天下无敌了。这个只是基础,以后的路还长...

2019-04-04 22:53:24 3087 2

转载 谈谈象棋的基本功《一》残局篇

谈谈象棋的基本功《一》残局篇 谈谈象棋的基本功象棋的基本功分三块:(1)6个月以上残局的杀法练习------培养算度,对棋子子力的理解和各棋子之间的配合运用。(2)复盘能力(即一盘棋下完以后,能凭借记忆从头到尾重新走一遍。)----培养基本的算度和对象棋的理解。(3)一年以上对象棋古棋谱的背诵。------培养象棋开局中局残局的全面理解,从古棋谱中深入领会象棋的意义。(以上所说6个...

2019-04-04 22:52:22 1211 1

转载 java源码阅读指导(个人收藏)

java源码阅读的思路JDK源码阅读顺序Java源码之ObjectJava源码之String

2019-04-04 09:56:17 466

转载 强势推荐!!通俗易懂的设计模式

设计模式也可以这么简单

2019-04-02 21:59:59 419

原创 redis学习之数据库

redisServer为服务器状态的redis,redis数据存储在服务器状态redisClient为客户端使用 通过指针指向不同的服务器redisredisDb结构如上图,里面有一个dict,dict保存了数据库中的所有键值对下图为一个例子设置键的生存时间过期键的删除策略惰性策略和定期策略结合...

2019-03-14 09:27:13 74

原创 redis学习之对象

每次redis在数据库中新建一个键值对的时候,都要创建两个对象,一个作为键,一个作为值type 记录了对象类型(字符串 列表 哈希 集合 有序集合)encoding记录了对象所使用的编码,即这个对象使用什么数据结构作为对象的底层实现(long类型的整数 sds 字典 双端链表 压缩列表 整数集合 跳跃表和字典)字符串对象整数型字符串上图是使用sds实现字符串...

2019-03-13 11:21:41 63

原创 redis学习之数据结构

如果对redis感兴趣,建议读一读《redis设计与实现》redis有5中结构:字符串 链表 hash表 set 排序setSDSredis底层实现则是由c语言实现,存储字符串不是用C字符串,而用的SDS(动态字符串)大家看,是一个结构体,包含了 len free char buf[]下图为使用SDS的优点:链表这个看起来和SDS的...

2019-03-12 20:51:36 85

原创 Spring in action阅读总结之数据库

JDBC连接数据库我常使用的是JPA,用起来简单的多,但是要是对于数据库调优来说,还得使用JDBC形式使用JDBC模板,避免重复写样板代码后两个基本不适用,使用JdbcTemplate模板即可spring jdbc模板还是很重要的,毕竟JPA过于简单,读者现在还不太会用jdbc模板,今后深入学习Spring Data JPA常用的就是JPA了,Hibernat...

2019-03-04 15:41:15 81

usb无线网卡驱动 2.0

usb无线网卡驱动 2.0

2017-02-26

usb无线网卡驱动

usb无线网卡驱动

2017-02-26

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

TA关注的人

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