自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 收藏
  • 关注

原创 深入理解计算机组成原理--冯诺依曼体系结构

计算机的基本硬件组成CPU:它是计算机最重要的核心配件,名字为中央处理器。计算机的所有“计算”都是由CPU来进行的内存:你撰写的程序、打开的浏览器、运行的游戏都要加载到内存里才能运行。程序读取的数据、计算得到的结果,也都要放在内存里。内存越大,能加载的东西自然也就越多。存放在内存里的程序和数据需要被CPU读取,CPU计算完之后还要把数据写回到内存,然而CPU不能直接查到内存上,反之亦然。主板:主板有着各种各样,有时候多达数十乃至上百个插槽的配件,CPU和内存都要插在主板上。主板的芯片组...

2021-12-30 14:08:51 938

原创 MyBatis基础入门

1.创建maven工程点击next,选择apache下的快速开始:点击next,之后finish完成maven项目创建:创建完成之后,可以得到如下视图:2.在项目中导入jar包在pom.xml文件中配置文件,自动下载jar包。结果如下:3.创建log4j.properties日志文件随便找到一篇log4j配置文件详解,复制进入log4j.properties文件中:...

2019-06-05 00:03:29 192 1

原创 LeetCode--347.前K个高频元素

给定一个非空的整数数组,返回其中出现频率前 k 高的元素。示例 1:输入: nums = [1,1,1,2,2,3], k = 2输出: [1,2]示例 2:输入: nums = [1], k = 1输出: [1]说明:你可以假设给定的 k 总是合理的,且 1 ≤ k ≤ 数组中不相同的元素的个数。你的算法的时间复杂度必须优于 O(n log n) , n 是数...

2019-04-22 21:25:36 232 1

原创 Java基于动态数组实现最大堆

1.堆二叉堆二叉堆是一颗完全二叉树(区别于满二叉树)堆中某个结点的值总是不大于其父节点的值通常这种堆称为最大堆(相应的可以定义最小堆)下层的某一元素不一定小于上层的某一元素既然是完全二叉树,所以可以用数组定义该结构在数组中存储该结构,其中任意结点的父亲和左右孩子有如下逻辑关系当根节点的角标为1时当根节点的角标为0时代码实现package ...

2019-04-22 20:21:38 384 1

原创 Java--冒泡排序、选择排序、插入排序

冒泡排序冒泡排序算法的原理如下:1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。2.对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。3.针对所有的元素重复以上的步骤,除了最后一个。3.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。选择排序插入排序插入排序在日常生活中,就如同打麻将。首先从数组...

2019-04-17 21:18:59 158

原创 LeetCode--109.有序链表转化二叉搜索树

给定一个单链表,其中的元素按升序排序,将其转换为高度平衡的二叉搜索树。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。示例:给定的有序链表: [-10, -3, 0, 5, 9],一个可能的答案是:[0, -3, 9, -10, null, 5], 它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9...

2019-04-17 18:09:19 142

原创 LeetCode--700.二叉搜索树中的搜索

给定二叉搜索树(BST)的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回以该节点为根的子树。 如果节点不存在,则返回NULL。例如,给定二叉搜索树: 4 / \ 2 7 / \1 3和值: 2你应该返回如下子树: 2 / \ 1 3在上述示例中,如果要找的值是 5,但因为没有节点值为 5,我们...

2019-04-17 11:39:50 195

原创 LeetCode--257.二叉树的所有路径

给定一个二叉树,返回所有从根节点到叶子节点的路径。说明: 叶子节点是指没有子节点的节点。示例:输入: 1 / \ 2 3 \ 5输出: [“1->2->5”, “1->3”]解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3/** * Definition for a bin...

2019-04-17 10:58:49 128

原创 LeetCode--344.反转字符串

编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。示例 1:输入:[“h”,“e”,“l”,“l”,“o”]输出:[“o”,“l”,“l”,“e”,“h”]示例 ...

2019-04-16 22:15:51 134

原创 LeetCode--24.两两交换链表中的节点

给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3./** * Definition for singly-linked list. * public class ListNode { * int...

2019-04-16 20:41:03 176

原创 LeetCode--237.删除链表中的节点

请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 – head = [4,5,1,9],它可以表示为:示例 1:输入: head = [4,5,1,9], node = 5输出: [4,1,9]解释: 给定你链表中值为 5的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例 ...

2019-04-16 20:11:43 132

原创 Java中方法的参数传递机制

方法的参数传递机制:1.形数是基本数据类型:传递数据值2.实参是引用数据类型传递地址值特殊的类型:String、包装类等对象不可变性因此代码最终的运行结果是:i=1;str=hello;num=200;arr=[2,2,3,4,5];my.a=11;...

2019-04-16 18:00:47 174

原创 LeetCode--235.二叉搜索树的最近公共祖先

给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]示例 1:输入: root ...

2019-04-16 16:40:15 125

原创 LeetCode--98.验证二叉搜索树

给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入: 2 / \ 1 3输出: true示例 2:输入: 5 / \1 4 / \ 3 6输出: ...

2019-04-16 15:42:03 141

原创 LeetCode--226.反转二叉树

翻转一棵二叉树。示例:输入: 4 / \ 2 7 / \ / \1 3 6 9输出: 4 / \ 7 2 / \ / \ 9 6 3 1解析:题目的最终目的是将根的左右子树进行反转,因此需要设定一个中间变量,使得根节点的左子树为根节点的右子树,而根节点的右子树变成根节点的...

2019-04-15 20:46:33 139

原创 LeetCode--617.合并二叉树

给定两个二叉树,想象当你将它们中的一个覆盖到另一个上时,两个二叉树的一些节点便会重叠。你需要将他们合并为一个新的二叉树。合并的规则是如果两个节点重叠,那么将他们的值相加作为节点合并后的新值,否则不为 NULL的节点将直接作为新二叉树的节点。的节点将直接作为新二叉树的节点。- 示例 1:输入:Tree 1 ··· ·······························...

2019-04-15 20:14:22 189

原创 LeetCode--86.分隔链表

给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。示例:输入: head = 1->4->3->2->5->2, x = 3输出: 1->2->2->4->3->5y分析:由于题目规定所有小于x的节点都在大于或者等于...

2019-04-15 16:36:10 134

原创 Java中关键字与标识符

标识符什么是标识符?标识符就是在Java中,对各种变量、方法和类等要素命名时所使用的字符序列。标识符的组成规则大小写的英文字母数字字符( $ 和 _ )注意事项不能以数字开头区分大小写不能使用关键字- 标识符的命名规范类和接口:首字符大写如果是多个单词,每一个单词的首字符都要大写。(XxxYyyZzz)变量和方法:第一个单词的首...

2019-04-12 18:55:34 260

转载 String.getBytes()方法

这是一篇转帖:本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/maxracer/archive/2010/12/14/6075057.aspx在Java中,String的getBytes()方法是得到一个操作系统默认的编码格式的字节数组。这表示在不同的操作系统下,返回的东西不一样!String.getBytes(Stringdecode)方法会根据指定的dec...

2019-04-12 17:19:29 1504

原创 String.valueOf()方法的使用

一、由基本数据型态转换成String  String 类别中已经提供了将基本数据型态转换成 String 的 static 方法 ,也就是 String.valueOf() 这个参数多载的方法有以下几种(1)String.valueOf(boolean b) : 将 boolean 变量 b 转换成字符串(2)String.valueOf(char c) : 将 char 变量 c 转换成...

2019-04-12 17:13:56 217

原创 LeetCode--20.有效的括号

给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: fal...

2019-04-12 09:56:57 148

原创 数据结构之平衡二叉树

树结构简介树结构本身是一种天然的组织结构,将数据使用树结构存储后,会大幅高效率。什么是二叉树和链表一样,动态数据结构class Node{ E e; Node left; //左孩子 Node right; //右孩子}多叉树(多个子结点)二叉树具有唯一根节点二叉树中每个结点最多有两个孩子,没有孩子的结点称之为叶子结点二叉树中每个结点最多有一个父亲结点,根节点没有...

2019-04-11 19:59:39 892

原创 Java中垃圾回收机制

- 例题:释放掉一个指定占据的内存空间的方法是()。A:调用system.gc()方法B:调用free()方法C:复制给该项对象的引用为nullD:程序员无法明确强制垃圾回收器运行正确答案:D在Java语言中,GC(Garbage Collection,垃圾回收)是一个非常重要的概念,它的主要作用是回收程序中不再使用的内存。在使用C/C++语言进行程序开发的时候,开发人员必须非常仔细...

2019-04-11 17:16:35 1047

原创 LeetCode--258.各位相加

给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。示例:输入: 38输出: 2解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2。 由于 2 是一位数,所以返回 2。题目分析:每计算下一个数字的各个位上的数字之和,都依赖于上一个数字的各个位数字之和,因此需要使用递归函数。所以,先求出来当前数字的各个位数字之和。class Solu...

2019-04-10 22:05:14 154

原创 有return情况下try..catch..finally执行顺序

总结:不管有没有出现异常,finally块中代码都会执行;当try和catch中有return时,finally仍然会执行;finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,不管finally中的代码怎么样,返回的值都不会改变,仍然是之前保存的值),所以函数返回值是在finally执行前确定的;finally中最好不要包含ret...

2019-04-10 17:56:20 225

原创 Java中static的特性

对于静态变量,静态变量并不是说其值不能改呢,不能改变值的变量叫做常量,用final关键字修饰。静态变量的值是可以改变的,而且它会保持最新的值。称其为静态,是因为它不会随着函数的调用和退出而发生变化。即上次调用函数的时候,如果我们给静态变量赋予某个值的话,下次函数调用时,这个值保持不变。静态变量 类型说明符时static。静态变量属于静态存储方式,其存储空间为内存中的静态数据区(在静态存储区内...

2019-04-03 20:07:45 605 1

原创 LeetCode--905/922按奇偶排序数组

给定一个非负整数数组 A,返回一个由 A 的所有偶数元素组成的数组,后面跟 A 的所有奇数元素。你可以返回满足此条件的任何数组作为答案。示例:输入:[3,1,2,4]输出:[2,4,3,1]输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。提示:1 <= A.length <= 50000 <= A[i] <...

2019-04-03 18:32:48 176

原创 LeetCode--删除排序链表中的重复元素

给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3过程分析:/** * Definition for singly-linked list. * public class Lis...

2019-04-02 22:00:19 133

原创 Java--异常的常见问题

A:异常的概述异常就是Java程序在运行过程中出现的错误。B:异常的分类通过API查看ThrowableError服务器宕机,数据库崩溃等ExceptionC:异常的继承体系ThrowableErrorExceptionRuntimeException异常(JVM默认是如何处理异常的)A:JVM默认是如何处理异常的main函数收到这个问题时,有...

2019-04-02 20:58:38 156

原创 LeetCode--66. 加一

给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 432...

2019-04-02 20:09:22 133

原创 LeetCode--724. 寻找数组的中心索引

给定一个整数类型的数组 nums,请编写一个能够返回数组“中心索引”的方法。我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。示例 1:输入: nums = [1, 7, 3, 6, 5, 6]输出: 3解释:索引...

2019-04-02 19:39:19 193 1

原创 LeetCode--2. 两数相加

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

2019-04-02 17:54:55 119

原创 LeetCode--142. 环形链表 II

给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是-1,则在该链表中没有环。说明:不允许修改给定的链表。示例 1:输入:head = [3,2,0,-4], pos = 1输出:tail connects to node inde...

2019-04-02 16:52:34 125

原创 LeetCode--141. 环形链表

给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是-1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。示例 2:输入:head = [1,2], pos = 0...

2019-04-02 16:21:37 137

原创 LeetCode--21.合并两个有序链表

将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4题目分析:我们需要定义一个新的链表,可以对这个新链表起名为l3,并且创建一个哑巴节点,最后返回哑巴节点的下一个.由于我们需要将l1和l2链表中的值放入l...

2019-04-02 15:57:26 139

转载 LeetCode-328.奇偶链表

给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性。请尝试使用原地算法完成。你的算法的空间复杂度应为 O(1),时间复杂度应为 O(nodes),nodes 为节点总数。示例 1:输入: 1->2->3->4->5->NULL输出: 1->3->5->2-&...

2019-04-01 21:35:10 155

原创 动态链表--用Java语言描述

15/100发布文章 博文管理我的博客退出 Trash Temp JAVA SE 第一章 计算机、程序和Java概述 Java SE 第二章 基本程序设计 Java SE 第六章 数组 Java SE 第六章 数组 Java SE 第六章 数组 Java SE 第六章 数组 ...

2019-04-01 20:29:32 257

原创 数据结构--递归之八皇后问题

问题概述八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。public class EightQueen { private static int count=0;//记录第几种可能 private ...

2019-04-01 20:01:27 157

原创 数据结构--递归算法基础概述及汉诺塔问题

添加摘要 **递归**1.递归概述对递归最恰当的比喻,就是查词典。我们查词典的过程,本身就是递归。想象用一本纯英文词典查单词,要查某一个单词的意思,翻到这个单词时,看解释,发现解释中有一个单词不认识,所以,无法明白这个要查的单词是什么意思;这时,再用这本词典(函数本身)查那个不认识的单词,又发现查的第2个单词的解释中又有一个单词不认识,那么,又再...

2019-04-01 17:35:19 301

原创 LeetCode--206.反转链表

反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL分析:解法一:创建新链表先设置一个虚拟头节点,将链表中的第一个节点放入新创建链表的第一个,依次遍历之前链表,使用头插法将之前链表的元素插入新建的链表。class Solution { publ...

2019-04-01 11:42:04 131

空空如也

空空如也

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

TA关注的人

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