自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Star_M的博客

但行好事,莫问前程。

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

原创 java面向对象的三大特性

面向对象的语言有 : C++ 、 Java 、 C#等一、封装封装就是把一个对象的属性私有化,同时提供一些可以被外部类访问的属性的方法封装的优点:1.良好的封装可以减少耦合2.类内部的机构可以自由修改3.隐藏信息、实现等细节4.可以对成员变量更精确的控制二、继承使用继承可以用来复用代码。可以将所有子类的共同属性放入父类中。关于继承要记住三点:1.子类拥有父类的所有非paivate的属性和方法2.子类可以拥有自己的属性和方法,即子类可以对父类进行扩展3.子类可以用自己的方式实现父类的

2020-07-25 20:42:17 130

原创 剑指offer-- 30.包含min函数的栈

题目描述定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min、push 及 pop 的时间复杂度都是 O(1)。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.push(0);minStack.push(-3);minStack.min(); --> 返回 -3.minStack.pop();minStack.top(); --> 返回 0

2020-07-24 17:54:14 72

原创 剑指offer-- 66. 构建乘积数组

题目描述给定一个数组 A[0,1,…,n-1],请构建一个数组 B[0,1,…,n-1],其中 B 中的元素 B[i]=A[0]×A[1]×…×A[i-1]×A[i+1]×…×A[n-1]。不能使用除法。示例:输入: [1,2,3,4,5]输出: [120,60,40,30,24]提示:所有元素乘积之和不会溢出 32 位整数a.length <= 100000思路:分成上三角和下三角注意上三角和下三角要有技巧的乘解决方法class Solution { public i

2020-07-20 17:51:24 62

原创 剑指offer--62. 圆圈中最后剩下的数字

题目描述0,1,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。示例 1:输入: n = 5, m = 3输出: 3示例 2:输入: n = 10, m = 17输出: 2限制:1 <= n <= 10^51 <= m <= 10^6思路:数学解法–约瑟夫环

2020-07-20 15:26:55 99

原创 剑指offer--18删除链表的结点

题目描述给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。注意:此题对比原题有改动示例 1:输入: head = [4,5,1,9], val = 5输出: [4,1,9]解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.示例 2:输入: head = [4,5,1,9], val = 1输出: [4,5,9]解释: 给定你链表中值为 1 的第三个节点,那么在调用了你的函数

2020-07-20 10:57:19 59

原创 剑指offer--52. 两个链表的第一个公共节点

题目描述输入两个链表,找出它们的第一个公共节点示例:思路:双指针;引用一位大佬的解释使用两个指针nodeA nodeB分别指向两个链表的头节点headAheadB,然后同时遍历分别遍历,当nodeA节点到达链表A的结尾时,重新指向headB链表的头结点;当nodeB结点到达链表B的结尾时,重新指向headA链表的额头结点。解决方法/** * Definition for singly-linked list. * public class ListNode { * i

2020-07-17 21:25:39 816 1

转载 三次握手、四次挥手

这位博主写的非常好

2020-07-15 12:19:11 68

原创 剑指 Offer-- 28. 对称的二叉树

题目描述请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。1/ 2 2/ \ / 3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:1/ 2 2\ 3 3示例 1:输入:root = [1,2,2,3,4,4,3]输出:true示例 2:输入:root = [1,2,2,null,3,null,3]输出:f

2020-07-14 21:31:49 73

原创 剑指offer--68 - II. 二叉树的最近公共祖先(还不理解。。。)

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

2020-07-13 20:37:35 83

原创 剑指offer--68.I 二叉搜索树的最近公共祖先

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

2020-07-13 17:16:11 149

原创 剑指offer-- 32 - III. 从上到下打印二叉树 III

题目描述请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。例如:给定二叉树: [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回其层次遍历结果:[[3],[20,9],[15,7]]提示:节点总数 <= 1000思路:在II的基础上改进,将list的尾部添加->头部添加可以使用addFirst()、addLast() 是Li

2020-07-07 18:22:52 87

原创 剑指offer--32 . II 从上到下打印二叉树 II

题目描述从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。例如:给定二叉树: [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回其层次遍历结果:[[3],[9,20],[15,7]]提示:节点总数 <= 1000思路:每层都放入一个list,通过for循环quque.size()来分辨每一层解决方法/** * Definition for a binary tree node. * public

2020-07-07 16:43:08 131

转载 java中的空值、空对象、空格

//空对象String s = null空对象是指定义了一个对象,但是没有给该对象分配空间,即没有实例化该对象。因此空对象再调用所有对象方法时,如s.length,s.size()会抛出异常。//空值String s = "";空值是指改字符串对象已经实例化,即系统已经给该对象分配了空间,只是对象的内容为空。//空格String s = " ";空格是指对象已经实例化,但是对象的内容为空格。对于上述三种情况,如何判断一个字符变量属于上述类型1. 空对象判断s == null;

2020-07-06 21:10:18 1174

原创 java中深拷贝和浅拷贝

深拷贝和浅拷贝最根本的区别在于是否获取一个对象的复制实体,而不是引用。假设B复制了A,修改A时,看B是否发生变化:如果B跟着也变了,说明是浅拷贝,拿人手短!(修改的是堆内存中的同一个值)如果B没有改变,说明是深拷贝,自食其力!(修改堆内存中的不同的值)浅拷贝(shallowCopy)只是增加了一个指针指向已存在的内存地址。当b=a进行拷贝时,其实复制的是a的引用地址,而并非堆里面的值。仅仅是指向被复制的内存地址,如果原地址发生改变,那么浅复制出来的对象也会相应的改变。深拷贝(deepCopy

2020-07-04 17:45:22 114

转载 java的一些面试题目

参考这位博主

2020-07-04 17:32:10 90

原创 剑指offer-- 32 - I. 从上到下打印二叉树

题目描述从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。例如:给定二叉树: [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回:[3,9,20,15,7]提示:节点总数 <= 1000思路:二叉树的层序遍历BFS利用队列层序遍历每个节点动态数组ArrayList动态添加每个节点值解决方法/** * Definition for a binary tree node. * public class TreeN

2020-07-02 17:05:55 118

转载 HashMap和Hashtable的区别

HashMap和Hashtable都实现了Map接口,但是具体用哪个,还要看他们两个的区别:1.线程安全性Hashtable是线程安全的,它的每个方法中都加入了Synchronize方法。在多线程并发的环境下,可以直接使用Hashtable,不需要自己为它的方法实现同步(可以多个线程可以共享一个Hashtable)HashMap不是线程安全的,在多线程并发的环境下,可能会产生死锁等问题。使用HashMap时就必须要自己增加同步处理2.同步和速度由于Hashtable是线程安全的,也是synchro

2020-07-01 19:38:32 2444

原创 剑指offer--09. 用两个栈实现队列

题目描述用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )示例 1:输入:[“CQueue”,“appendTail”,“deleteHead”,“deleteHead”][[],[3],[],[]]输出:[null,null,3,-1]示例 2:输入:[“CQueue”,“deleteHead”,“appendTail

2020-07-01 10:55:49 68

空空如也

空空如也

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

TA关注的人

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