自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 二叉树的坡度

给定一个二叉树,计算整个树的坡度。一个树的节点的坡度定义即为,该节点左子树的结点之和和右子树结点之和的差的绝对值。空结点的的坡度是0。整个树的坡度就是其所有节点的坡度之和。示例:输入: 1 / \ 2 3输出: 1解释: 结点的坡度 2 : 0结点的坡度 3 : 0结点的坡度 1 : |2-3| = 1树的坡度...

2019-04-28 22:10:02 611 2

原创 二叉树的层平均值

给定一个非空二叉树, 返回一个由每层节点平均值组成的数组.示例 1:输入: 3 / \ 9 20 / \ 15 7输出: [3, 14.5, 11]解释:第0层的平均值是 3, 第1层是 14.5, 第2层是 11. 因此返回 [3, 14.5, 11].这个特别像二叉树的广度优先遍历,如果忘了可以看看Java 二叉树,深度优先遍历,...

2019-04-28 14:36:12 299

原创 修剪二叉搜索树

给定一个二叉搜索树,同时给定最小边界L和最大边界R。通过修剪二叉搜索树,使得所有节点的值在[L, R]中 (R>=L) 。你可能需要改变树的根节点,所以结果应当返回修剪好的二叉搜索树的新的根节点。示例 1:输入: 1 / \ 0 2 L = 1 R = 2输出: 1 \ 2示例 2:输入: ...

2019-04-28 14:19:17 258

原创 把二叉搜索树转换为累加树

给定一个二叉搜索树(Binary Search Tree),把它转换成为累加树(Greater Tree),使得每个节点的值是原来的节点值加上所有大于它的节点值之和。例如:输入: 二叉搜索树: 5 / \ 2 13输出: 转换为累加树: 18 / ...

2019-04-28 13:45:26 210

原创 叶子相似的树

请考虑一颗二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个叶值序列。举个例子,如上图所示,给定一颗叶值序列为(6, 7, 4, 9, 8)的树。如果有两颗二叉树的叶值序列是相同,那么我们就认为它们是叶相似的。如果给定的两个头结点分别为root1和root2的树是叶相似的,则返回true;否则返回false。思路:深度优先搜索,递归,找到叶子...

2019-04-28 11:01:51 143

原创 链表的中间结点

给定一个带有头结点head的非空单链表,返回链表的中间结点。如果有两个中间结点,则返回第二个中间结点。示例 1:输入:[1,2,3,4,5]输出:此列表中的结点 3 (序列化形式:[3,4,5])返回的结点值为 3 。 (测评系统对该结点序列化表述是 [3,4,5])。注意,我们返回了一个 ListNode 类型的对象 ans,这样:ans.val = 3, ans...

2019-04-28 10:23:13 197

原创 Java 算法题笔记(八)

移除链表元素删除链表中等于给定值val的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5法一:增加一个节点代替当前的头指针,这样如果头指针为应该跨过的指针,也可以用加的那个指针跨过。public ListNode removeElements...

2019-04-27 19:51:37 144

原创 求众数,阶乘后的零

给定一个大小为n的数组,找到其中的众数。众数是指在数组中出现次数大于⌊ n/2 ⌋的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例1:输入: [3,2,3]输出: 3示例2:输入: [2,2,1,1,1,2,2]输出: 2从第一个数开始计数,遇到相同的就加1 ,不同的就减1 ,减到0 就重新计数,总能找到最多的那个。。public ...

2019-04-27 10:27:21 145

原创 最小栈

设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。push(x)-- 将元素 x 推入栈中。 pop()-- 删除栈顶的元素。 top()-- 获取栈顶元素。 getMin() -- 检索栈中的最小元素。示例:MinStack minStack = new MinStack();minStack.push(-2);minStack.pus...

2019-04-27 09:45:31 104

原创 路径总和(二叉树)

给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。说明:叶子节点是指没有子节点的节点。示例:给定如下二叉树,以及目标和sum = 22, 5 / \ 4 8 / / \ 11 13 4 ...

2019-04-27 08:38:21 1246

原创 最大回文前缀

一个字符串的最大回文前缀长度求一个字符串的最大回文前缀长度。回文是指正反方向读起来都一样的字符串,比如“abcdcba”就是一个回文。Scanner in = new Scanner(System.in); while (in.hasNext()){ String input = in.next(); int len = i...

2019-04-26 22:35:42 377

原创 Window

WindowManagerGlobal 内部有如下几个列表比较重要:// mViews 存储的是所有Window 所对应的Viewprivate final ArrayList<View> mViews = new ArrayList<View>(); //mRoots 存储的是所有Window 所对应的ViewRootImpl private...

2019-04-26 22:09:43 204

原创 intent-filter 的匹配规则

只写Action 不行,<activity android:name=".a.BActivity"> <intent-filter> <action android:name="intent.action.test.bbb" /> </intent-filter></activity>// 这...

2019-04-25 11:29:34 217

原创 Flags

FLAG_ACTIVITY_NEW_TASK 为Activity 指定singleTask 启动模式。FLAG_ACTIVITY_SINGLE_TOP 为Activity 指定singleTop 启动模式。FLAG_ACTIVITY_CLEAR_TOP 启动具有此标记位的Activity ,在同一个任务栈,所有位于它上面的Activity 都要出栈。这个标记位一般会和single...

2019-04-25 10:26:33 327

原创 面向对象六大原则

学习设计模式的读书笔记。单一职责原则就一个类而言,应该仅有一个引起它变化的原因(一个类应该是一组相关性很高的函数、数据的封装)。开闭原则软件中的对象(类、模块、函数等)应该对应扩展是开放的,但是,对于修改是封闭的(在软件的生命周期内,因为变化、升级和维护等原因需要对软件原有代码进行修改时,可能会将错误引入原本已经经过测试的旧代码中,破坏原有系统)。里氏替换原则就是继承思想,...

2019-04-23 09:07:00 137

原创 二叉树的最小深度

给定一个二叉树,找出其最小深度。最小深度是从根节点到最近叶子节点的最短路径上的节点数量。说明:叶子节点是指没有子节点的节点。示例:给定二叉树[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最小深度 2.这个与 二叉树的最大深度 不同,需要考虑如图的情况。publi...

2019-04-22 22:40:23 147

原创 平衡二叉树

给定一个二叉树,判断它是否是高度平衡的二叉树。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1。示例 1:给定二叉树[3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7返回true。示例 2:给定二叉树[1,2,2,3,3,null,nu...

2019-04-22 22:10:49 113

原创 二叉树的最大深度

给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:叶子节点是指没有子节点的节点。示例:给定二叉树[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回它的最大深度3 。public int maxDepth(TreeNode root) { ...

2019-04-22 21:44:36 117

原创 相交链表

编写一个程序,找到两个单链表相交的起始节点。相交为8法一:让两个链表都入栈,在把两个栈出栈对比,如果相等就刷新记录,不等不刷新记录,跳出循环即可,这应记录的就是相交的节点。public ListNode getIntersectionNode(ListNode headA, ListNode headB){ Stack<ListNode> stac...

2019-04-21 09:43:19 172

原创 Java 选择排序

之前看视频上是这样讲的private void selectSort1(int[] arr){ for (int i=0;i<arr.length-1;i++){ for (int j=i+1;j<arr.length;j++){ // 不断把更小的换到i 位置 if (arr...

2019-04-20 10:31:20 103

原创 Java 冒泡排序

/** * 冒泡排序 */ public static void bubbleSort1(int[] arr){ for (int x=0; x<arr.length-1; x++){ for (int y=0; y<arr.length-1-x ;y++){ if (arr[...

2019-04-20 10:10:05 115

原创 Java 浅拷贝

被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅拷贝仅仅复制所考虑的对象,而不复制它所引用的对象。public class Book { private String name; public Book(String name) { this.name = name; } publi...

2019-04-18 20:13:44 289

原创 Java 算法题笔记(七)位运算

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。示例 1:输入: [2,2,1]输出: 1对异或的考察异或:相同为0,不同为1 。异或同一个数两次,原数不变。 a^b^b = a; 交换律:a ^ b ^ c <=> a ^ c ^ b 任何数于0异或为任何数 0 ^ n => n...

2019-04-17 08:29:40 344

原创 验证回文串

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true示例 2:输入: "race a car"输出: false用前后指针的方法可以提高效率,就是一个i从前走,遇到非法字符就跳过,一个j从...

2019-04-14 22:06:31 142

原创 将有序数组转换为高度平衡的二叉搜索树

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

2019-04-14 20:59:11 241

原创 Java 算法题笔记(六)

二叉树的层序遍历给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)例如:给定二叉树[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其自底向上的层次遍历为:[ [15,7], [9,20], [3]]用递归从上到下...

2019-04-13 11:07:39 133

原创 GridView 加载图片界面卡顿问题

gridView.setOnScrollListener(new AbsListView.OnScrollListener() { @Override public void onScrollStateChanged(AbsListView view, int scrollState) { if (scrollSta...

2019-04-12 11:28:17 1470 1

原创 Java 算法题笔记(五)

爬楼梯假设你正在爬楼梯。需要n阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定n是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶...

2019-04-11 08:08:31 179

原创 Java 算法笔记(四)

给定一个仅包含大小写字母和空格' '的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0。说明:一个单词是指由字母组成,但不包含任何空格的字符串。示例:输入: "Hello World"输出: 5/** * 简单分析:由于给定一个仅包含大小写字母和空格' '的字符串,所以不用考虑其它字符 * 由于是最后一个单词,所以可以从后...

2019-04-09 22:19:45 245

原创 Java 二叉树,深度优先遍历,广度优先遍历

二叉树的深度优先遍历,可以使用栈,因为栈有后进先出的特性,二叉树的广度优先遍历,可以使用队列来实现。package sjjg;import java.util.ArrayDeque;import java.util.Deque;import java.util.Stack;public class Tree1 { public static void main(S...

2019-04-09 20:32:28 286

原创 面试准备HashMap

HashMap线程不安全,允许null 值null 键 ,由数组+链表构成存储原理有一个数组存储元素,通过hashCode() 来获得关键字的哈希值(实际上是数组的下标)数组元素:Entry 类型3个数据域(key,value,next)。存储过程第一个键值对A进来,通过hashCode()计算其key的hash得到index=0,那么Entry[0]=A,第二个键值对...

2019-04-09 19:16:31 140

空空如也

空空如也

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

TA关注的人

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