- 博客(22)
- 资源 (1)
- 收藏
- 关注
原创 eclipse无法安装sts插件的问题
eclipse无法安装sts插件的问题1.问题情景使用Eclipse Photon安装Spring Tool Suite报错:Cannot complete the install because one or more required items could not be found. Software being installed: Spring IDE OSGi Exten...
2019-07-04 16:38:42
1803
1
原创 排序算法总结
一、冒泡排序(BubbleSort)1.1 基本思想① 比较相邻的元素。如果第一个比第二个大,就交换它们两个;② 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数;③ 针对所有的元素重复以上的步骤,除了最后一个;④ 重复步骤1~3,直到排序完成。1.2 过程:1.3 平均时间复杂度:O(n²) 1.4 java代码实现:public ...
2019-06-29 21:30:59
126
原创 LeetCode 107. 二叉树的层次遍历 II
107. 二叉树的层次遍历 II给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回其自底向上的层次遍历为:[ [15,7], [9,20], [3]]Java参考...
2019-06-26 15:28:29
124
原创 LeetCode 102. 二叉树的层次遍历
102. 二叉树的层次遍历给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。例如:给定二叉树: [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回其自底向上的层次遍历为:[ [3], [9,20], [15,7]]Java参考解答迭代解法/** * D...
2019-06-26 15:24:13
156
原创 LeetCode 169.求众数 和 229. 求众数 II
一、摩尔投票算法 (Boyer-Moore Voting Algorithm)摩尔投票算法也可以叫做多数投票算法,是我在看到 leetcode 169(Majority Element)题目时看到的算法。这篇文章从 leetcode 169(Majority Element)出发讲解摩尔投票算法的原理和优势,同时从 leetcode 229(Majority Element2)出发讲解摩尔投票算...
2019-06-25 15:54:48
189
原创 LeetCode 104. 二叉树的最大深度
104. 二叉树的最大深度给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例:给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最小深度 2.Java参考解答迭代解法/** * Definition...
2019-06-17 20:22:46
153
原创 LeetCode 111. 二叉树的最小深度
111. 二叉树的最小深度给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明: 叶子节点是指没有子节点的节点。示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最小深度 2.Java参考解答迭代解法/** * Definitio...
2019-06-17 20:19:36
164
原创 二叉树查找、插入、遍历、删除节点
1、二叉树节点的类:package Tree;// 二叉树节点public class Node { // 数据项 public int data; // 左子节点 public Node leftChild; // 右子节点 public Node rightChild; // 构造方法 public Node(int data) { this.data = dat...
2019-06-17 20:13:22
405
原创 B树、B+树—插入,删除,查询
一、B树1、插入在B树中插入关键码key的思路:对高度为h的m阶B树,新结点一般是插在第h层。通过检索可以确定关键码应插入的结点位置。然后分两种情况讨论:1. 若该结点中关键码个数小于m-1,则直接插入即可。2. 若该结点中关键码个数等于m-1,则将引起结点的分裂。以中间关键码为界将结点一分为二, 产生一个新结点,并把中间关键码插入到父结点(h-1层)中重复上述工作,最坏情况一...
2019-06-17 11:09:49
1833
原创 B树、B+树、红黑树的理解
B+树出现的原因: 我们都知道二叉查找树的查找的时间复杂度是O(log N),其查找效率已经足够高了,那为什么还有B树和B+树的出现呢?难道它两的时间复杂度比二叉查找树还小吗? 答案当然不是,B树和B+树的出现是因为另外一个问题,那就是磁盘IO;众所周知,IO操作的效率很低,那么,当在大量数据存储中,查询时我们不能一下子将所有数据加载到内存中,只能逐一加载磁盘页,每个磁盘页对应树的节点...
2019-06-16 21:37:30
462
原创 LeetCode 206. 反转链表
206. 反转链表反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULLJava参考解答迭代解法/** * Definition for singly-linked list. * public class ListNode { * int val;...
2019-06-12 21:26:02
98
原创 LeetCode 203. 移除链表元素
203. 移除链表元素删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5Java参考解答/** * Definition for singly-linked list. * public class ListNode { *...
2019-06-12 21:22:46
228
原创 LeetCode 82. 删除排序链表中的重复元素 II
882. 删除排序链表中的重复元素 II给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中没有重复出现 的数字。示例 1:输入: 1->2->3->3->4->4->5输出: 1->2->5示例 2:输入: 1->1->1->2->3输出: 2->3Java参考解答/** * Defi...
2019-06-12 20:39:23
112
原创 LeetCode 83. 删除排序链表中的重复元素
83. 删除排序链表中的重复元素给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3Java参考解答/** * Definition for singly-linked list. * publi...
2019-06-12 20:36:10
74
原创 LeetCode 24 两两交换链表中的节点
24. Swap Nodes in PairsGiven a linked list, swap every two adjacent nodes and return its head.You may not modify the values in the list’s nodes, only nodes itself may be changed.Example:Given 1-&g...
2019-06-11 20:52:28
98
原创 LeetCode 23 合并K个排序链表
23. Merge k Sorted ListsMerge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.Example:Input:[ 1->4->5, 1->3->4, 2->6]Output: 1-&g...
2019-06-11 19:55:22
86
原创 LeetCode 21 合并两个有序链表
21.Merge Two Sorted ListsMerge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.Example:Input: 1->2->4, 1...
2019-06-11 16:39:27
76
原创 Java实现简单的栈和队列(底层基于数组)
栈:LIFO(后进先出)队列:FIFO(先进先出)栈的顺序存储结构实现-Java// 栈public class MyStack { // 底层实现是一个数组 private long[] arr; private int top; // 默认的构造方法 public MyStack() { arr = new long[10]; top = -1; } // ...
2019-06-11 15:12:45
425
原创 数据库范式
1、无损分解无损分解的(粗略)定义: 关系模式 R=(A,B,C)R=(A,B,C)R=(A,B,C) 分解为两个子模式:R1=(A,B)R1=(A,B)R1=(A,B) 和 R2=(B,C)R2=(B,C)R2=(B,C),称为无损分解,如果对RRR上任何关系实例 rrr, 有 &n...
2019-06-11 10:30:12
870
原创 Java实现简单的单链表
1、Java实现简单的单链表:数据结构:单链表的实现-Java数据结构还是很重要的,就算不是那种很牛逼的,但起码得知道基础的东西,这一系列就算是复习一下以前学过的数据结构和填补自己在这一块的知识的空缺。加油。珍惜校园中自由学习的时光。按照链表、栈、队列、排序、数组、树这种顺序来学习数据结构这门课程把。一、单链表的概念链表是最基本的数据结构,其存储的你原理图如下图所示:上面展示的是一个单...
2019-05-28 21:23:15
329
转载 深拷贝与浅拷贝
定义: 在Python中对象的赋值其实就是对象的引用。当创建一个对象,把它赋值给另一个变量的时候,python并没有拷贝这个对象,只是拷贝了这个对象的引用而已。 浅拷贝:拷贝了最外围的对象本身,内部的元素都只是拷贝了一个引用而已。也就是,把对象复制一遍,但是该对象中引用的其他对象我不复制 深拷贝:外围和内部元素都进行了拷贝对象本身,而不是引用。也就是,...
2019-03-06 11:09:09
87
转载 对GIL的理解
一个进程 一个GIL CPU的核数 GIL 锁,全局解释器锁,作用就是,限制多线程同时执行,保证同一时间内只有一个线程在执行。 线程非独立的,所以同一进程里线程是数据共享,当各个线程访问数据资源时会出现竞状态,即数据可能会同时被多个线程占用,造成数据混乱,这就是线程的不安全。 所以引进了互斥(chi)锁,确保某段关键代码、共享数据只能由一个线程从头到尾...
2019-03-06 10:11:08
201
KMeans Python代码
2018-04-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人