自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

不了痕的博客

知道的越多,知道的就越少

  • 博客(112)
  • 问答 (7)
  • 收藏
  • 关注

原创 二叉树相关算法题目总结

二叉树基础二叉树本身是一个每个节点最多包含左右两个节点的树。对于二叉树来讲,不像其他集合(List,Map)之类的有已经造好的轮子直接拿来用。所以多数场景下,遇到二叉树,需要我们自己来定义二叉树的数据结构。public class TreeNode { public int val; public TreeNode left; public TreeNode right; public TreeNode(int val) { this.val

2020-05-31 17:27:00 589

原创 【leetcode 77】Combinations 元素组合

题目Given two integersnandk, return all possible combinations ofknumbers out of 1 ...n.Example:Input:n = 4, k = 2Output:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]解题思路...

2020-03-22 13:22:30 307

原创 【JAVA面试题整理】框架之Mybatis

一、Mybatis中#和$的区别#相当于对数据加上双引号,$相当于直接显示数据 #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如orderby #user_id#,如果传入的值是111,那么解析成sql时的值为orderby "111",如果传入的值是id,则解析成的sql为orderby "id"。 $将传入的数据直接显示生成在sql中。如:order...

2020-03-16 17:43:07 331

原创 【JAVA面试题整理】框架之Shiro

一、简单介绍一下Shiro框架ApacheShiro是java的一个安全框架。使用shiro可以非常容易的开发出足够好的应用,其不仅可以用在JavaSE环境,也可以用在JavaEE环境。Shiro可以帮助我们完成:认证、授权、加密、会话管理、与Web集成、缓存等。三个核心组件:Subject、SecurityManager、RealmsSubject:即“当前操作用户”。但是,在Sh...

2020-03-16 08:14:20 2140

原创 【JAVA面试题整理】框架之SpringMVC

一、Spring MVC的工作原理 用户向服务器发送请求,请求被springMVC前端控制器DispatchServlet捕获 DispatcherServlet队请求URL进行解析,得到请求资源标识符(URL),然后根据URL调用HandlerMapping将请求映射到处理器HandlerExcutionChain DispatcherServlet根据获取到Handl...

2020-03-16 08:13:22 320

原创 面试官问你:哪几行代码能保证算法稳定性?

遵从百度百科解释,算法稳定性定义如下:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。之前面试前没了解过,胡乱一说算法稳定性就是保证算法计算一次和计算多次结果都是一样的# #,现在想来这种...

2020-03-15 20:42:15 595

原创 【JAVA面试题整理】框架之Spring详解

一、谈谈你对Spring的理解Spring是一个开源框架,为简化企业级应用开发而生。Spring可以使简单的JavaBean实现以前只有EJB才能实现的功能。Spring是一个IOC和AOP容器框架。Spring容器的主要核心是:控制反转(IOC):传统的java开发模式中,当需要一个对象时,我们会自己使用new或者getInstance等直接或间接调用构造方法创建一个对象。而在spr...

2020-03-15 09:25:41 1262

原创 【JAVA面试题整理】数据库之Oracle

1、什么是存储过程,使用存储过程的好处?存储过程(Stored Procedure )是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。优点:(1)允许模块化程序设计,就是说只需要创建一次过程,以后在程序中就可以调用...

2020-03-14 16:45:31 560

原创 【JAVA面试题整理】数据库之Mysql

一、SQL的select语句完整的执行顺序 form子句组装来自不同数据源的数据 where子句基于指定的条件对记录进行筛选 groupby子句将数据划分为多个分组 使用聚集函数进行计算 使用having子句筛选分组 计算所有的表达式 select的字段 使用orderby对结果集进行排序 SQL语言不同于其他编程...

2020-03-14 16:41:58 1290

原创 【JAVA面试题整理】JavaWeb

JDBC技术一、说下原生jdbc操作数据库流程 Class.forName()加载数据库连接驱动 DriverManager.getConnection()获取数据连接对象 根据SQL获取sql会话对象,有两种方式:Statement、PreparedStatement 执行SQL处理结果集,执行SQL前如果有参数值就设置参数值setXXX() 关...

2020-03-12 14:19:35 429

原创 【JAVA面试题整理】JAVA高级(二)

JAVA的类加载器一、java的类加载器有哪几种?1、根类加载器(Bootstrap)2、扩展类加载器(Extension):加载位置jre\lib\ext中3、系统(应用)类加载器(System\App):加载位置:classpath中4、自定义类加载器(必须继承ClassLoader)二、类什么时候被初始化? 创建类的实例,也就是new一个对象 访问某个...

2020-03-11 01:24:30 332

原创 【JAVA面试题整理】JAVA高级(一)

JAVA中的反射一、说说你对反射的理解反射是要能获取到java类中的字节码,获取字节码的方法有3种: Class.forName(ClassName); 类名.class; this.getClass(); 然后将字节码中的变量、方法、构造函数映射成相应的Field、Method、Construct等,供我们进行丰富的操作。JAVA中的动态代理1、动静...

2020-03-10 08:04:37 1105

原创 【JAVA面试题整理】JAVA基础(五)

多线程面试题一、多线程的创建方式 继承Thread类; 实现Runnable接口; 使用ExecutorService、Callable、Future实现带有返回结果的多线程; 二、java中wait和sleep方法的不同? 最大的不同是wait在等待时会释放锁,sleep一致持有锁。 wait通常被用于线程间的交互,sleep通常被用于暂停执行。...

2020-03-08 15:10:17 311

原创 【JAVA面试题整理】JAVA基础(四)

JAVA的多线程和并发库一、线程创建的方式1、在Thread子类覆盖run方法中实现运行代码2、在传递给Thread对象的runnable对象的run方法中实现运行代码总结:无论以哪种方式运行,都是最终要实现Runnable接口的run方法。public interface Runnable { /** * When an object impleme...

2020-03-08 11:32:24 393

转载 TCP 为什么三次握手而不是两次握手(正解版)

参考文章Why do we need a 3-way handshake? Why not just 2-way大部分网络博客的错误解读首先需要声明的是, 百度搜索到的大部分网络博客关于这个问题的解答都是不清晰或者不准确的。 讨论这个问题的大部分博客都会引用《计算机网络》的内容:防止已失效的连接请求又传送到服务器端,因而产生错误不幸的是, 这种解释是不准确的, TCP 采用三次...

2020-03-07 23:40:35 1162

原创 【JAVA面试题整理】JAVA基础(三)

JAVA的集合类一、HashMap排序,上机题已知一个HashMap<Integer,User>集合,User有name(String)和age(int)属性。请写一个方法实现对HashMap的排序功能,该方法接收HashMap<Integer,User>为形参,返回类型为HashMap<Integer,User>,要求对HashMap中User的age...

2020-03-06 12:43:27 435

原创 【leetcode 122】Best Time to Buy and Sell Stock II 最佳买卖股票时间

题目Say you have an array for which theithelement is the price of a given stock on dayi.Design an algorithm to find the maximum profit. You may complete as many transactions as you like (i.e., b...

2020-03-05 21:44:25 223

原创 【leetcode 103】Binary Tree Zigzag Level Order Traversal 二叉树之字形层序遍历

题目ShareGiven a binary tree, return thezigzag level ordertraversal of its nodes' values. (ie, from left to right, then right to left for the next level and alternate between).For example:Give...

2020-03-05 21:18:36 246

原创 【leetcode 102】Binary Tree Level Order Traversal 二叉树层序遍历

题目Given a binary tree, return thelevel ordertraversal of its nodes' values. (ie, from left to right, level by level).For example:Given binary tree[3,9,20,null,null,15,7], 3 / \ 9 ...

2020-03-05 21:13:26 215

原创 【JAVA面试题整理】JAVA基础(二)

JAVA常见的API一、Math.Round(11.4)和Math.Round(-11.4)的结果分别是多少?输出结果分别为11和-11,round(四舍五入的原理是对原数字加上0.5之后再取整);二、switch能否作用在byte、long、String类型上?java5之前,switch后面跟的参数只能是byte、short、char、int,但是从java5开始,引入了e...

2020-03-05 17:11:34 296

原创 【JAVA面试题整理】JAVA基础(一)

面向对象一、面向对象都有哪些特性以及对这些特性的理解1、继承继承就是从已有的类中得到已有信息创建新类的过程,这个过程中,已有的类就是父类(超类、基类),新创建的类就是子类(派生类);继承让新的类有了一定的延续性2、封装封装通常意义理解为把数据和操作数据的方法分开实现,将所有的数据项进行封装,最终表现为对数据进行隐藏,对方法进行暴露,只向外部提供最简单的实现接口3、多态多...

2020-03-05 10:58:38 1411

原创 【leetcode 98】Validate Binary Search Tree 二叉搜索树

题目Given a binary tree, determine if it is a valid binary search tree (BST).Assume a BST is defined as follows:The left subtree of a node contains only nodes with keysless thanthe node's key....

2020-03-04 23:17:01 226

原创 【leetcode 100】Same Tree 相同树

题目Given two binary trees, write a function to check if they are the same or not.Two binary trees are considered the same if they are structurally identical and the nodes have the same value.Exa...

2020-03-04 23:11:49 243

原创 【leetcode 101】Symmetric Tree 对称数

题目Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center).For example, this binary tree[1,2,2,3,4,4,3]is symmetric: 1 / \ 2 2 / \ / \3 4 4 ...

2020-03-04 23:05:26 179

原创 【leetcode 12】 Integer to Roman 数字转罗马数字

题目Roman numerals are represented by seven different symbols:I,V,X,L,C,DandM.Symbol ValueI 1V 5X 10L 50C 100D ...

2020-03-04 22:14:18 198

转载 为什么重写equals()就一定要重写hashCode()方法?

以下为本文目录:首先我们分别解释equals()方法和hashCode()方法分别是用来做什么的?我们再来看equals()方法和hashCode()方法两者有什么关系?最后来看为什么重写equals()就一定要重写hashCode()方法?1、首先我们分别解释equals()方法和hashCode()方法分别是用来做什么的?equals()方法:很明显,该方法就是用来判断两个...

2020-03-04 13:03:32 876 1

原创 算法的稳定性

算法稳定性的定义假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。判断方法对于不稳定的排序算法,只要举出一个实例,即可说明它的不稳定性;而对于稳定的排序算法,必须对算法进行分析从而得到稳定的...

2020-03-03 21:13:54 6086 1

转载 看完这篇HTTP,跟面试官扯皮就没问题了

转自https://blog.csdn.net/qq_36894974/article/details/103930478认识 HTTP首先你听的最多的应该就是 HTTP 是一种 超文本传输协议(Hypertext Transfer Protocol),这你一定能说出来,但是这样还不够,假如你是大厂面试官,这不可能是他想要的最终结果,我们在面试的时候往往把自己知道的尽可能多的说出来,才有和...

2020-03-03 18:08:37 650

原创 Kafka常被提到的知识点

如何保证消息队列的高可用?(1) ActiveMQ和RabbitMQ单击吞吐量是万级, Kafka和RocketMQ的单机吞吐量是10万级.(2) 四种MQ的时效性, 可用性, 消息可靠性都很高.(3) ActiveMQ的社区不太活跃, 其他三种MQ的社区比较活跃.(4) RabbitMQ是基于Erlang语言开发, 对Java开发者不太友好.(5...

2020-03-02 10:33:19 269

转载 工作十年,分享看过的优质 Java 书籍

转自:https://blog.csdn.net/qing_gee/article/details/103521473不知不觉,我已经接触 Java 11 年了——从 2008 年北京奥运会那年开始,到现在;未来还会更久。这期间我读了不少 Java 方面的书籍,纸质版的少说有三十来本吧,更何况还有不少的电子书。万事都有好坏,书也一样。有的是精神粮食,有的纯粹是浪费时间。这里就分享一些我精挑...

2020-02-29 17:41:42 576

转载 为什么 30 岁的工程师容易跳槽?

作者|周明耀编辑|小智为什么在中国,年龄总会成为程序员们绕不过去的尖锐话题?你觉得孤独就对了,那是让你认识自己的机会。你觉得不被理解就对了,那是让你认清朋友的机会。你觉得黑暗就对了,那样你才分辨得出什么是你的光芒。你觉得无助就对了,那样你才能明白谁是你的贵人。你觉得迷茫就对了,谁的青春不迷茫。——《谁的青春不迷茫》前段时间有位读者联系我,提出了他的问题:“为什么我想跳槽,...

2020-02-28 23:44:51 1023

原创 力导算法布局优化(结合Barnes-Hut)java实现

BHTree:/** * BHTree.java * <p> * Represents a quadtree for the Barnes-Hut algorithm. * <p> * Dependencies: Body.java Quad.java * * @author chindesaurus * @version 1.00 */pu...

2020-02-28 00:14:26 1335 1

原创 leetcode掉坑经历分享

首先要承认一点,leetcode用来刷算法题,确实是提高解题思路,扩展视野的一个好东西。但是对于leetcode上题目的概述,有些情况实在不敢苟同。以下是几道算法刷题时,万万没想到的坑,分享给大家希望看过的人不会再掉进去。【leetcode 49 Group Anagrams】Given an array of strings, group anagrams together.E...

2020-02-22 13:59:50 589

原创 利用回溯法解排列组合问题

回溯法简述回溯法是一种优选的搜索法,又称试探法。按选优条件向前搜索,已达到目标。但当搜索到某一步时,发现原选择并不优或者达不到目标,就退一步重新选择。这种走不通就退回再走的技术称为回溯法。详见之前的文章回溯法总结。排列组合例题以下三道为leetcode上有关排列组合的问题,分别是46、47和48题。第一题:46.PermutationsGiven a collection...

2020-02-16 15:35:28 799

原创 【leetcode 62】Unique Paths 求起点终点路径条数

题目A robot is located at the top-left corner of amxngrid (marked 'Start' in the diagram below).The robot can only move either down or right at any point in time. The robot is trying to reach t...

2020-02-08 15:36:34 697

原创 动态规划总结

动态规划三要素1、最优子问题F(10)=F(9)+F(8),就是F(10)的最优子问题,局部贪心完美的将问题分解,如果得到的F(9)和F(8)都是最优解,F(10)一定也是最优解。2、边界条件分解到最后一定变成了规模最简单的问题,即F(1)和F(2)这两个问题,不能再分解,不过没关系,他们很简单,用你的小心心算就OK了。3、状态转移方程(DP方程)假设状态转移方程为F(n)...

2020-02-07 02:29:14 333

原创 回溯法总结

概念回溯法是一种优选的搜索法,又称试探法。按选优条件向前搜索,已达到目标。但当搜索到某一步时,发现原选择并不优或者达不到目标,就退一步重新选择。这种走不通就退回再走的技术称为回溯法。特点1、出口它的关键是出口语句放置的位置(建议出口语句放在递归函数的第一行),出口语句写在最前面,方便整个函数退出。2、递归函数的参数参数是随每一次的递归操作二发生改变的,二回溯的关键就是:如果...

2020-02-05 00:17:52 5355

原创 【leetcode 40】Combination Sum II 组合总数II

题目Given a collection of candidate numbers (candidates) and a target number (target), find all unique combinations incandidateswhere the candidate numbers sums totarget.Each number incandidate...

2020-02-03 14:33:24 268

原创 【leetcode 39】 Combination Sum 组合总数

题目Given asetof candidate numbers (candidates)(without duplicates)and a target number (target), find all unique combinations incandidateswhere the candidate numbers sums totarget.Thesame...

2020-02-02 23:15:30 273

原创 【我是一棵树】B树、B+树

多路查找树(B树)其每个节点的孩子数可以多于两个,且每一个节点处可以存储多个元素。2-3树其中每个节点都具有两个孩子(我们称它为2节点)或者3个孩子(3节点)。2-3-4树就是2-3树点的扩展,包括了4个节点的使用B树是一种平衡的多路查找树,节点最大的孩子数目称为B树的阶。属性1、如果根节点不是叶节点,则起至少有两棵子树。2、每一个非根的分支节点都有k-1个...

2020-02-01 11:18:05 474

空空如也

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

TA关注的人

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