自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LeetCode字符串算法题——Java题解与思路

1.最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。题解思路:首先遍历数组,取到长度最短字符串作为比较基准。再次遍历数组对字符串元素进行与基准字符串等长截取,并比较字符串是否相同,如不相同截掉基准字符串的最后一个字符继续比较,直至取到公共前缀(空字符串)返回。此题可采用暴力破解方式,但耗时更长,内存消耗更多。public String longestCommonPrefix(String[] strs) { if.

2020-09-28 17:13:35 379

原创 LeetCode数组算法题——题解与思路

1.寻找数组的中心索引给定一个整数类型的数组nums,请编写一个能够返回数组 “中心索引” 的方法。我们是这样定义数组 中心索引 的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。如果数组不存在中心索引,那么我们应该返回 -1。如果数组有多个中心索引,那么我们应该返回最靠近左边的那一个。题解思路:主要是遍历数组,当前元素左侧索引元素的和与右侧比较。效率较高的判断方式是:先求得数组所有元素的和,再遍历数组时将元素累加,判断sumLeft(i左侧元素的和) ==sum(总.

2020-09-22 14:40:11 604

原创 LeetCode栈和深度优先搜索(DFS)算法题——题解与思路

DFS深度优先搜索,递归模版/* * Return true if there is a path from cur to target. */boolean DFS(Node cur, Node target, Set<Node> visited) { return true if cur is target; for (next : each neighbor of cur) { if (next is not in visited) {

2020-09-17 14:52:45 353

原创 LeetCode栈结构算法题——题解与思路

1.最小栈设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。 pop()—— 删除栈顶的元素。 top()—— 获取栈顶元素。 getMin() —— 检索栈中的最小元素。题解思路:采用两个数组,模拟栈存储元素的同时,比较每次入栈的值的大小将该阶段最小值同样以栈的形式存入数组中。每次获取最小值,只需取最小值栈的栈顶值即可。class MinStack { private List&lt..

2020-09-15 15:02:33 346

原创 LeetCode队列算法题——题解与思路

一、设计循环队列设计你的循环队列实现。 循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。它也被称为“环形缓冲器”。循环队列的一个好处是我们可以利用这个队列之前用过的空间。在一个普通队列里,一旦一个队列满了,我们就不能插入下一个元素,即使在队列前面仍有空间。但是使用循环队列,我们能使用这些空间去存储新的值。你的实现应该支持如下操作:MyCircularQueue(k): 构造器,设置队列长度为 k 。 Front: 从队首获取元素。

2020-09-11 16:07:20 455

原创 onActivityResult遭弃用?来康康registerForActivityResult结果回调的最新用法

在Activity中onActivityResult是我们普遍使用的结果回传回调方法,而在最新的appcompat1.3.0-alpha02包中,这一方法被标记了@Deprecated 被废弃,并且建议使用registerForActivityResult方法来注册回调。此方法简化数据回调的写法,并且提供了多种用途。registerForActivityResult常规用法:registerForActivityResult( ActivityResultContr

2020-08-27 18:00:01 7831

原创 Jetpack组件之Lifecycle用途及原理

Lifecycle主要用途:用来监听Activity和Fragment的生命周期方法Lifecycle原理:实现Lifecycle主要依靠这4个核心类(接口)LIfecycleOwner LifecycleObserver Lifecycle LifecycleRegistry(1) LifecyleOwner:其官方描述是,一个具有Android生命周期的类,自定义组件可以利用这些事件来处理生命周期的变化,而不需要在Activity与Fragment实现任何代码。自Androi

2020-07-27 19:11:53 752

原创 LeetCode力扣链表算法题——题解与思路

目录链表双指针模版1.设计链表2.环形链表3.环形链表 II4.相交链表5.删除链表的倒数第N个节点6.反转链表7.移除链表元素8.奇偶链表9.回文链表10.设计链表(双链表)11.合并两个有序链表12.两数相加13.旋转链表14.复制带随机指针的链表(深拷贝)15.扁平化多级双向链表链表双指针模版// Initialize slow & fast pointersListNode slow = head;ListNo..

2020-06-16 15:37:30 1191

原创 LeetCode力扣二叉查找树卡片——题解与思路

二叉树问题的通用解题框架:1.验证二叉搜索树2.二叉搜索树迭代器3.Search in a Binary Search Tree4.Insert into a Binary Search Tree5.Delete Node in a BST6.Kth Largest Element in a Stream7.二叉搜索树的最近公共祖先8.存在重复元素 III9.平衡二叉树10.将有序数组转换为二叉搜索树

2020-06-09 11:19:55 451

原创 LeetCode力扣二叉树算法题——题解与思路

LeetCode力扣二叉树卡片算法题解与思路,包括:1.前序遍历2.中序遍历3.后序遍历4.层序遍历5.二叉树最大深度6.对称二叉树7.路径总和8.从中序与后序遍历序列构造二叉树9.从前序与中序遍历序列构造二叉树10.填充每个节点的下一个右侧节点指针11.填充每个节点的下一个右侧节点指针 II(非完美二叉树)12.二叉树的最近公共祖先13. 二叉树的序列化与反序列化

2020-06-04 15:43:22 2123

原创 Android 解决Jetpack Navigation组件返回上一个Fragment时重走onCreateView、onViewCreated方法问题

使用navigate()方法跳转其他Fragment,再navigateUp()该Fragment出栈并返回上一个界面时,会重走上一个界面的onCreateView和onViewCreated()生命周期方法,导致View和数据的初始化代码逻辑会重新执行,每次返回都会刷新页面。并且如果上一页面中初始化逻辑较多,可能会导致返回时有明显卡顿。问题场景:在项目中fragmentA界面的数据初始化操作是放在懒加载方法中执行,再跳转fragmentB界面并返回时,Afragment界面onViewCreated会

2020-05-19 15:32:46 9128 14

空空如也

空空如也

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

TA关注的人

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