3 zjtMeng

尚未进行身份认证

攻城狮

等级
TA的排名 5w+

二叉搜索树(Binary Search Tree)

一、基本概念1. 二叉树和链表一样,具有动态的数据结构;具有唯一的根节点;每个节点最多有两个子节点,最多有一个父节点;每个节点的左子树也是二叉树,每个节点的右子树也是二叉树;一个节点或者空也是二叉树;2.二分搜索树二分搜索树属于二叉树的一种;每个节点的值大于其左子树的所有节点;小于其右子树的所有节点;每个子树也是二分搜索树;每个节点所存储的元素必须有可比较性;...

2020-02-02 18:06:09

LeetCode——203. 移除链表元素

LeetCode题目地址来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-linked-list-elements/著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。题目删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6...

2020-01-06 15:38:02

队列——链表结构实现(带尾指针的链表)

本文接上一篇队列文章四、链表结构的队列1.带尾指针的链表根据链表结构的特性,在队首插入和删除节点比较容易,时间复杂度为o(1),但是在链表尾部插入和删除,都需要先找到链表尾部前一个节点的位置,这是需要遍历整个链表的,对应的时间复杂度为o(n);因此根据单链表的特性,在链表中添加一个tail节点,用于指向下一个节点即将插入的位置,如下图所示:此时便拥有了带尾指针的链表,而且对链表尾部进...

2020-01-06 00:05:38

链表——动手封装自己的链表

package dataStructure.chapter4;/** * @Author: zjtMeng * @Date: 2020/1/1 22:24 * @Version 1.0 */public class LinkedList<E> { private class Node{ public E e; public Nod...

2020-01-05 13:24:50

链表—— 最基础的动态数据结构

package dataStructure.chapter4;/** * @Author: zjtMeng * @Date: 2020/1/1 22:24 * @Version 1.0 */public class LinkedList<E> { private class Node{ public E e; public Nod...

2020-01-04 18:11:17

Java并发编程学习系列

Java并发编程系列1.Atomic基本类型2.原子性锁3.不可变对象4.线程封闭5.线程不安全类与写法6.同步容器7.AQS组件之CountDownLatch8.AQS组件之信号量(Semaphore)9.AQS组件之CyclicBarrier10.AQS组件之ReentrantLock、StempedLock以及Condition等11.J.U.C组件FutureTask...

2020-01-01 12:53:29

队列——数组结构实现(循环队列)

本文接上一篇队列文章三、循环队列循环队列的优点普通队列出队操作开销大:在出队操作时,索引为0后面的所有元素,都需要往前移动一位,元素越多,消耗的时间也越多,时间复杂度为O(N)3.1 循环队列的逻辑当元素较少时(tail位置在front后面),循环队列与普通队列出队操作一样,入队的元素将会放在tail的位置上,随后执行tail++操作;出队时front位置上的元素将会置null,随...

2019-12-29 18:10:31

队列——数组结构实现(普通队列)

一、队列1. 队列的概念队列的核心理念是:先进先出;队列是一种特殊的线性表:它只允许在表的前端(front)进行删除操作,而在表的后端(tail)进行插入操作;队列和栈都是一种操作受限的线性表,其中进行插入操作的端称之为队尾,进行删除操作的端称之为队首;2.队列的属性getFront():获取队首的元素,但不进行出队操作;getSize():获取队列中元素的数量;isEmpt...

2019-12-29 15:52:02

栈——封装自己的栈

public interface Stack<E> { int getSize(); boolean isEmpty(); void push(E e); E pop(); E peek();}底层用数组实现的栈/** * @auther jintao.zhang * @date 2019-12-17 11:31 */pu...

2019-12-22 16:32:16

动态数组——二次封装自己的数组

package dataStructure.chapter1;/** * 自定义数组 * @Author: zjtMeng * @Date: 2019/12/15 12:46 * @Version 1.0 */public class Array<E> { private E[] data; private int size; /** ...

2019-12-16 00:34:43

时间处理(更新ing)

1.获取上周的周一(周日) @Test public void getLastMonday(){ LocalDate local = LocalDate.now();//获取当前时间 DayOfWeek dayOfWeek = local.getDayOfWeek();//获取今天是周几 LocalDate lastMonday =...

2019-12-09 16:51:46

LeetCode——3.无重复字符的最长子串

LeetCode题目地址来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。题目给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例1:输入: “abcabc...

2019-11-25 23:38:37

LeetCode——2.两数相加

题目描述:给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -&gt...

2019-11-18 11:24:24

Java并发编程——Spring的线程安全

Spring没有保证bean的线程安全1.线程安全问题的由来:线程安全问题都是由全局变量及静态变量引起的若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;若有多个线程同时执行写操作,一般都需要考虑线程同步,否则就可能影响线程安全。2.spring不保证bean的线程安全Spring没有保证这些bean的线程安全,需要由开发者自己编写解决线程...

2019-11-17 16:43:14

Java并发编程——多线程的最佳实践

1.尽量使用本地变量尽量使用本地变量,而不是创建一个类或实例的变量。定义在函数内部的变量就是本地变量;2.尽量使用不可变类String、Integer等。不可变类可以降低代码中需要的同步数量;3. 最小化锁的作用域范围:S=1/(1-a+a/n)该公式称为:“阿姆达尔定律"或"安达尔定理”。 其中:a:并行计算部分所占比例;n:并行处理结点个数;S:加速比;当1-a等于0时...

2019-11-17 13:27:25

算法——排序算法类模板

package algorithms.example;/** * @Author: zjtMeng * @Date: 2019/11/14 22:15 * @Version 1.0 */public class Example { /** * 排序算法的实现 * @param a 待排序的数组 */ public static void...

2019-11-15 00:24:09

后端获取http请求中的参数

1.参数在请求url上,如:http://{host:port}/mnagement//{ruleId}方法:在入口方法的参数前面,使用@PathVariable注解,并且变量名与url中大括号中变量名一致,即可直接传入该方法中获取其中{ruleId}的示例代码: //对应请求:http://{host:port}/mnagement/10086,获取url中的10086 @Req...

2019-11-14 12:34:13

SpringBoot+Mybatis 配置多数据源

目的:在springBoot项目中添加database1数据库和database2数据库第一步:修改application.properties配置文件   1. 在application.properties文件中追加了以下内容#mysql database1数据库spring.datasource.database1.url=jdbc:mysql://10.10.10.10/data...

2019-11-14 10:12:42

剑指offer——变态青蛙跳

题目一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法;规律:一级台阶:1 = 2^0;二级台阶:2 = 2^1;三级台阶:4 = 2^2;四级台阶:8 = 2^3…n级台阶:count = 2^(n-1)代码实现public class Solution { /** * 运行时间:17ms ...

2019-11-12 11:03:52

剑指offer——青蛙跳

问题一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。方法一:递归public class Solution1 { /** * 运行时间:489ms * 占用内存:9308k * @param target * @return */ public int J...

2019-11-12 00:03:24

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。