自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(90)
  • 收藏
  • 关注

转载 二叉树的镜像

public void Mirror(TreeNode root) { if (root == null) return; swap(root); Mirror(root.left); Mirror(root.right); ...

2019-09-05 18:39:00 109

转载 树的子结构

输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) public class Solution { public static boolean HasSubtree(TreeNode root1, TreeNode r...

2019-09-05 18:36:00 137

转载 用数组实现栈、队列

数组实现栈 public static class ArrayStack { private Integer[] arr; private Integer size; public ArrayStack(int initSize) { //initsiz...

2019-09-05 17:45:00 135

转载 (非递归不懂)合并两个排序的链表

输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。 递归版本 public ListNode Merge(ListNode list1, ListNode list2) { if (list1 == null) retu...

2019-09-05 15:41:00 89

转载 反转链表

/* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ public cla...

2019-09-05 15:28:00 72

转载 链表中倒数第 K 个结点

输入一个链表,输出该链表中倒数第k个结点。 设链表的长度为 N。设两个指针 P1 和 P2,先让 P1 移动 K 个节点,则还有 N - K 个节点可以移动。此时让 P1 和 P2 同时移动,可以知道当 P1 移动到链表结尾时,P2 移动到 N - K 个节点处,该位置就是倒数第 K ...

2019-09-05 15:17:00 74

转载 ]调整数组顺序使奇数位于偶数前面

问题: 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。 使用冒泡思想,每次都当前偶数上浮到当前最右边。时间复杂度 O(N2),空间复杂度 O(1),时间换空...

2019-09-05 15:00:00 58

转载 (不懂)数值的整数次方

public double Power(double base, int n) { double res = 1,curr = base; int exponent; if(n>0){ exponent = n; }else ...

2019-09-05 14:54:00 50

转载 二进制中 1 的个数

输入一个整数,输出该数二进制表示中 1 的个数。 位与运算技巧: n&(n-1) 去除 n 的位级表示中最低的那一位。例如对于二进制表示 10110100,减去 1 得到 10110011,这两个数相与得到 10110000。 n&(-n) 得到 ...

2019-09-05 14:47:00 336

转载 矩形覆盖

问题:我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 当 n=1,只有一种方法, 当 n = 2,只有两种方法。 要覆盖 2*n 的大矩形,可以先覆盖 2*1 的矩形,再覆盖 2*(n-1) 的矩形;...

2019-09-05 14:29:00 67

转载 变态跳台阶

问题: 一只青蛙一次可以跳上 1 级台阶,也可以跳上 2 级... 它也可以跳上 n 级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 public class Solution { public int JumpFloorII(int target) { if (...

2019-09-05 14:07:00 66

转载 查找所有已经分配部门的员工的last_name和first_

查找各个部门当前(to_date='9999-01-01')领导当前薪水详情以及其对应部门编号dept_no CREATE TABLE `dept_manager` ( `dept_no` char(4) NOT NULL, `emp_no` int(11) NOT NULL, `...

2019-09-03 10:21:00 88

转载 查找当前薪水详情以及部门编号dept_no

查找各个部门当前(to_date='9999-01-01')领导当前薪水详情以及其对应部门编号dept_no CREATE TABLE `dept_manager` ( `dept_no` char(4) NOT NULL, `emp_no` int(11) NOT NULL, `fr...

2019-09-03 10:19:00 97

转载 跳台阶

问题: 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。 public class Solution { public int JumpFloor(int target) { ...

2019-09-03 10:14:00 98

转载 斐波那契数列

大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。 n<=39 1. 递归法 1. 分析 斐波那契数列的标准公式为:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*) 根据公...

2019-09-03 10:03:00 108

转载 (2)查找入职员工时间排名倒数第三的员工所有信息

查找入职员工时间排名倒数第三的员工所有信息 CREATE TABLE `employees` ( `emp_no` int(11) NOT NULL, `birth_date` date NOT NULL, `first_name` varchar(14) NOT NULL, `last_n...

2019-09-02 20:29:00 162

转载 ( 1 ) 查找最晚入职员工的所有信息

题目: 查找最晚入职员工的所有信息 CREATE TABLE `employees` ( `emp_no` int(11) NOT NULL, `birth_date` date NOT NULL, `first_name` varchar(14) NOT NULL, `last_name` ...

2019-09-02 20:22:00 216

转载 用两个栈实现队列

思路: 用户给我数据,只进 push 栈,用户给我数据,永远只进从 pop 栈拿。 但是有两个限制, 1. 如果 push 栈要往 pop 栈里倒数据,一次要倒完。 2. 如果 pop 栈里有东西,push 栈里一定不要倒! import j...

2019-09-02 16:07:00 56

转载 ( 未完成 )重建二叉树

根据二叉树的前序遍历和中序遍历的结果,重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。...

2019-09-02 15:25:00 87

转载 单例模式

要点 某个类只能有一个实例 构造器私有化 它必须自行创建这个实例 含有一个该类的静态变量来保存这个唯一实例 必须自行先整个系统提供这个实例 对外提供获取该实例对象的方式 直接暴露 ...

2019-08-31 09:15:00 78

转载 java中散列表、树所对应的的容器类。HashMap如何解决冲突

java中散列表、树所对应的的容器类 散列表:hashmap,hashtable,concurrentHashmap 树:hashset,treemap,treeset jdk7与jdk8中HashMap的区别 jdk7中hashMap采用数组+链表,如果过多的节点在hash时...

2019-08-30 19:09:00 67

转载 二分查找

二分查找,是在数组有序基础上建立的。 算法思想: 搜索过程中从数组的中间元素开始,如果中间元素正好是 num,搜索过程结束。 如果目标值 > 中间元素,则从 [中间元素,右边界 R ]中取中间值,再比较。 如果某一步骤为空,则代表找不到。 这种搜索算法,每一次比较...

2019-08-30 11:01:00 44

转载 堆排序

堆排序,就是利用堆结构进行的排序。 数组到底是怎么排序的呢? 1. 判空,变成大根堆,未必有序。 2.声明 heapSize 。 最后一个位置与堆顶位置做交换。 3. 此时让堆的大小减一,6,就永远不动了。 4. while(heapSize>0),从 0 位开始做 he...

2019-08-30 09:22:00 51

转载 快排

先讲经典快排。 荷兰国旗 从0 遍历到 n-1 ,num=5,第一个是 4 ,4 与 num 比较,当前数<= num ,把当前数,与小于等于区域中的下一个数交换。然后小于等于区域向右扩大一个位置。> num 的数,直接跳。 变种 有三个下标,一个是小于区域,一个是大于区域...

2019-08-30 07:02:00 204

转载 归并排序

归并问题(分治思想) 时间复杂度O(n log n) 分为两个部分,左边排好序,右边排好序,整体再通过外排。 有一个辅助数组,谁小,就往辅助数组中填坑,如果某个部分填完了,就将剩下的部分全部放进数组中。辅助数组排好序后,再整体拷贝回原数组。 思路:一个类三个方法,mergeSo...

2019-08-30 06:03:00 54

转载 插入排序

插入排序 将数组分为两个区间,已排序区间与未排序区间,初始已排序区间只有第一个元素,其核心思想是取未排序区间的元素,在已排序好的区间合适的位置插入,保证已排序数据一直有序,重复这个过程,直到未排序区间中元素为空。 思路:一个类两个方法,一个 swap 方法,一个 InsertSort 方法...

2019-08-29 16:33:00 47

转载 选择排序

选择排序 分为已排区间(在左边)和未排区间(在右边)。每次从未排区间找出一个 min ,放到已排区间的末尾。 0-N-1 遍历一次找出最小值,放在 0 位上。 1 到 N-1 上遍历一次,找出最小值,放在 1 位置上。直到排好序。 时间复杂度是 O(N2),空间复杂度是 O(1) ...

2019-08-29 15:49:00 36

转载 冒泡排序

冒泡排序时间复杂度是O(N^2),额外空间复杂度是O(1)。 什么是冒泡排序? 首先看 0位和1位,0位>1位,就交换;然后看1位>2 位,是,就交换。这样排到最后,最后一个数肯定是最大的,一次只放好一个数;下一次操作继续,0~N-1 的操作。 思路是: 一个类中有两个方法...

2019-08-29 14:57:00 48

转载 char 可以存储汉字吗?

用来储存Unicode字符 unicode编码字符集中包含了汉字,所以,char型变量中当然可以存储汉字啦。不过,如果某个特殊的汉字没有 被包含在unicode编码字符集中 unicode 编码固定占用两个字节,所以,char类型的变量也是占用两个字节。 ...

2019-08-29 09:37:00 532

转载 Java 的内部类

定义:可以将一个类的定义放在另一个类的定义内部 作用: 每个内部类都能独立地继承一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响。 同时如果我们需要创建某个内部类对象,必须要利用外部类的对象通过.new来创建内部类:OuterClass.Inner...

2019-08-29 08:33:00 54

转载 从尾到头打印链表

ListNode是由自己定义的java中的链表对象 public class ListNode { int val; ListNode next; public ListNode(int x){ val=x; } ...

2019-08-26 20:58:00 44

转载 替换空格

请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。 解题思路 在字符串尾部填充任意字符,使得字符串的长度等于替换之后的长度。 因为一个空格要替换成三个字符(%20),因此当遍...

2019-08-26 20:33:00 54

转载 1. 二维数组中的查找

给定一个二维数组,其每一行从左到右递增排序,从上到下也是递增排序。给定一个数,判断这个数是否在该二维数组中。 解题思路 要求时间复杂度 O(M + N),空间复杂度 O(1)。 特性:该二维数组中的一个数,它左边的数都比它小,下边的数都比它大。 因此,从右上角开始查找,就可以根据...

2019-08-26 19:35:00 75

转载 用 Java 实现生产者和消费者的三种方法

生产者消费者问题是多线程的一个经典问题,它描述是有一块缓冲区作为仓库,生产者可以将产品放入仓库,消费者则可以从仓库中取走产品。 在Java中有四种方法支持同步,其中前三个是同步方法,一个是管道方法。 wait() / notify()方法 await() / signal()方法...

2019-08-26 14:57:00 91

转载 对象的内存分布

https://segmentfault.com/a/1190000007652363值得一看 对象的内存布局 虚拟机中,对象在内存中的布局划分为3个区域:对象头,实例数据以及对齐填充。 对象头 一般包含两部分信息,第一部分用于存储对象自身的运行时数据,例如HashCode、GC分...

2019-08-26 14:17:00 199

转载 java 中创建子类实例时会创建父类实例吗?

首先每个类的这些元数据,无论是在构建这个类的实例还是调用这个类某个对象的方法,都会访问方法区的这些元数据。构建一个对象时,JVM会在堆中给对象分配空间,这些空间用来存储当前对象实例属性以及其父类的实例属性(而这些属性信息都是从方法区获得) 注意,这里并不是仅仅为当前对象的实例属性分配空间,还...

2019-08-26 14:10:00 174

转载 synchronized 和 volatile (可见性与禁止指令重排序) 区别?

volatile, final, synchronized都可以实现可见性 1. 首先volatile 本质是在告诉 JVM 当前变量在寄存器中的值是不确定的,需要从主存中读取。 synchronized 则是锁定当前变量,只有当前线程可以访问该变量,其他线程被...

2019-08-26 13:47:00 142

转载 Java 的线程同步方式有哪些?

一、synchronized关键字 Synchronized修饰整个方法 java的每个对象都有一个内置锁,当用此关键字修饰方法时,内置锁会保护整个方法。synchronized关键字也可以修饰静态方法,此时如果调用该静态方法,将会锁住整个类 s...

2019-08-26 11:54:00 192

转载 简述为什么会有锁机制

Java 允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时,将会导致数据出现不正确的结果。 锁机制是将可能出现问题的代码用锁对象锁起来,被锁起来的代码就叫同步代码块,同一时间只能有一个线程来访问这个同步代码块.这类似于数据库中事务这个概念 ...

2019-08-26 11:25:00 768

转载 Java中 init 和 clinit 区别

Java 在编译之后字节码文件中生成<init> 方法,是实例构造器,程序在 new 一个对象调用该对象类的 constructor 方法时才会执行 <init> 方法。 该实例构造器会将变量初始化、语句块,调用父类的构造器等操作收敛到 <init>...

2019-08-26 10:22:00 130

空空如也

空空如也

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

TA关注的人

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