自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android通用分享技术

android通用的分享技术

2024-03-27 18:01:27 581 1

原创 两个联动的可扩展收起的textView的简单实现

textView

2022-08-07 22:03:52 110 1

原创 Activity Result API

在Fragment 和 Activiiy之间进行调用,,,代替原来的StartActiviForResult,因为这个方式会把所有的回调结果都放在这一个方法里,会导致这一块代码逻辑复杂,代码冗长,不便阅读。在的Result API方式中,我们可以根据自己的需求自定义协议,让每一个协议只做对应的一件事,让代码更加清晰。自定义协议方式使用:1.添加依赖implementation 'androidx.activity:activity:1.2.0-beta01'implementation 'andr

2022-03-02 12:35:05 203

原创 摇晃动画的三种实现方式

是对图标形态的动画,不用实际改变图标的位置。方式一:ObjectAnimator类ObjectAnimator animation2 = ObjectAnimator.ofFloat(mImageView,“rotation”,0,-24,0,20,-12,0,10,0,-7,0,5,0);animation2.setInterpolator(new DecelerateInterpolator());animation2.setDuration(1000);animation2.setRepea

2022-03-02 12:21:24 260

原创 ObjectAnimator设置旋转中心

ObjectAnimator animation2 = ObjectAnimator.ofFloat(mImageView,"rotation",0,-24,0,20,-12,0,10,0,-7,0,5,0); animation2.setInterpolator(new DecelerateInterpolator()); animation2.setDuration(1000); animation2.setRepeatMode(ValueAnimat..

2022-02-28 17:52:46 1035

原创 动态改变SlidingUpPanelLayout的可滑动高度

动态改变SlidingUpPanelLayout的可滑动高度求助各位大佬,这么动态改变SlidingUpPanelLayout底部的可滑动高度

2022-01-21 11:38:42 134

转载 将View生成Bitmap的方法

public Bitmap createViewBitmap(View v) {Bitmap bitmap = Bitmap.createBitmap(v.getWidth(), v.getHeight(),Bitmap.Config.ARGB_8888);Canvas canvas = new Canvas(bitmap);v.draw(canvas);return bitmap;}————————————————版权声明:本文为CSDN博主「xiyunmengyuan」的原创文章,遵循C

2021-12-30 19:56:42 403

原创 Android学习问题集

1.动画的两种监听器2.动画自定义,写法3.DecelerateInterpolator4.Handler使用,写法5.Activity生命周期,log6.自定义View,前面的ui组件,每一个敲一遍。7.自定布局8.Fragment9.资源文件目录结构10.四大组件...

2021-12-24 20:24:56 1388

原创 【23】二叉树的层序遍历

/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { .

2021-08-05 00:31:38 52

原创 【22】二叉树的层数

剑指 Offer 55 - I. 二叉树的深度输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。例如: 给定二叉树 [3,9,20,null,null,15,7],来源leetcode 剑指offer 55思路:递归,深度遍历,DFS,遍历左右子节点的深度,取最大值。方法一:/** * Definition for a binary tree node. * public class TreeNode { .

2021-08-05 00:30:27 1121

原创 【21】只出现一次的第一个字符

剑指 Offer 50. 第一个只出现一次的字符难度简单在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。示例:s = “abaccdeff”返回 “b”s = “”返回 " "方法一 使用HashMap储存字符出现的频数//1.使用HashMap储存字符出现的频数//2.将字符串s转换为char型数组 toCharArray()。//3.记录每个字符出现的频数//关键:getOrDefault(c,0)方法,如果map中存在值为c的key,

2021-08-01 22:25:43 52

原创 【20】数值的整数次方

实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。不得使用库函数,同时不需要考虑大数问题。示例 1:输入:x = 2.00000, n = 10 输出:1024.00000 示例 2:输入:x = 2.10000, n = 3 输出:9.26100 示例 3:输入:x = 2.00000, n = -2 输出:0.25000 解释:2-2 = 1/22 = 1/4 = 0.25我的思路:如果n 为负数,则求 1/x的n次方,如果n为整数,则求x的n次方。大佬思路: 快速.

2021-07-28 22:52:04 98

原创 【19】链表中的倒数第k个结点

剑指 Offer 22. 链表中倒数第k个节点输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。示例:给定一个链表: 1->2->3->4->5, 和 k = 2.返回链表 4->5.方法一:双指针,用两指针之间的距离记录找到倒数第k个结点。fast指针先走k步,然后.

2021-07-27 00:02:02 79

原创 【18】二进制数中的1的个数

编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为 汉明重量).)。 提示: * 请注意,在某些语言(如Java)中,没有无符号整数类型。在这种情况下,输入和输出都将被指定为有符号整数类型,并且不应影响您的实现,因为无论整数是有符号的还是无符号的,其内部的二进制表示形式都是相同的。在 Java 中,编译器使用 二进制补码 记法来表示有符号整数。因此,在上面的 示例 3 中,输入表示有符号整数 -3。示例 1:输入:n..

2021-07-27 00:00:00 69

原创 算法刷题【17】缺失的第一个正数2

题目41.缺失的第一个正数 给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。示例 1:输入:nums = [1,2,0] 输出:3 示例 2:输入:nums = [3,4,-1,1] 输出:2方法一:自创哈希法,三个循环三步走关键语句,标记: nums[num-1] = -Math.abs(nums[num-1]);理解的不是很透彻,之后再来补充。class Solution { p

2021-07-23 22:55:21 128

原创 算法刷题【16】LRU缓存

方法一:哈希+双链表LRU缓存就是在容量满了之后,又有新的元素需要存入时,这时会优先丢弃掉最近最久未使用的元素。使用双向链表维护一个容量,当元素被读取(或其他操作)时,就把这个元素放到链表头,更新它的使用时间。HashMap的作用确定读取的节点在双向链表中输入哪一个节点。class LRUCache {class Node {//结点类,存放key-value对象元素,有前域和后域 public int key, val; public Node next, prev;

2021-07-23 22:04:52 98

原创 算法刷题【15】无重复字符的最常子串

题目描述3. 无重复字符的最长子串给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: s = “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: s = “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的

2021-05-27 11:17:17 83

原创 算法刷题【14】剑指 Offer 06. 从尾到头打印链表

输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。示例 1:输入:head = [1,3,2]输出:[2,3,1]来源与leetcode。其实这道题就是反转链表改进版,要将反转之后的链表用数组返回值。我觉得主要考察的是如何讲链表转换成数组。这里用的一个方式就是,在迭代的时候,统计结点的个数,之后在根据结点的个数来开辟同等大小的数组空间。然后就是注意,反转列表之后的头结点是pre。class Solution { public int[] reversePrint(L

2021-05-15 23:48:04 52

原创 算法刷题【13】二查搜索树的第k大的结点

给定一棵二叉搜索树,请找出其中第k大的节点。示例 1:输入: root = [3,1,4,null,2], k = 13/ 1 42输出: 4示例 2:输入: root = [5,3,6,2,4,null,null,1], k = 35/ 3 6/ 2 4/1输出: 4来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-de-di-kda-jie-dian-lcof我

2021-04-15 18:52:25 95

原创 算法刷题【12】只出现一次的数字

题目来源 leetcode136. 只出现一次的数字给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4136. 只出现一次的数字我的思路:将数组放入HashSet中,判断hashset中是否存在该数,如果存在就调用remove方法删除该数,如果不存在就加入该数,所以最后只会

2021-04-08 16:49:06 86

原创 【JavaWeb】Servlet登录验证小结

流程:在html 的from表单中 使用get方法,并在img的src属性设为自动生成图片servlet的映射,从而访问到自动生成图片的控制器GenerateServlet,在GenerateServlet的doGet方法中,引用封装好的工具类(GenerateIamge)用来随机生成验证码图片,将生成的随机数存放在会话session中,给多个程序共享,通过ImageIO和ServletOutputStream将随机数图片返回给前端页面。简述:1.在form表单中设置get方法2.设置img属性sr

2021-04-07 00:17:54 429 1

原创 算法刷题【11】数组中的第K个最大元素

题目描述在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。示例 1:输入: [3,2,1,5,6,4] 和 k = 2输出: 5示例 2:输入: [3,2,3,1,2,4,5,5,6] 和 k = 4输出: 4说明:你可以假设 k 总是有效的,且 1 ≤ k ≤ 数组的长度。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/kth-largest-element

2021-04-05 15:02:07 105 1

原创 【Android】登录注册功能具体实现和一些小总结

1.初始界面2.验证用户名3.验证密码(空密码)(少于8位数的密码)验证确认密码确认密码为空确认密码与密码位数不一样4.复选框功能5.弹窗确认消息功能6.返回主页面功能,显示注册成功核心源码@OnClick({R.id.regBtn, R.id.reSetBtn}) public void onViewClicked(View view) { switch (view.getId()) { case R.id.reg

2021-04-01 20:26:35 2519

原创 【JavaWeb】初识servlet

servlet是javaweb中的三大组件之一,是一个服务器端的控制器。这里借下尚硅谷教程中的图一定要注意路径问题。工程路径指服务器(如tomcat的部署路径)如下图这里的路径就是工程路径,也是tomcat启动后访问的初始路径。在设置servlet路径时要注意和 form表单的action属性中的路径要保持一致。另外!!!!今天我才发现,css中name属性的选择器的格式是[name=“xxx”]{}一定要记录一下,太傻了,查了好多都没有靠谱解答。...

2021-03-31 21:34:39 54

原创 算法刷题【10】最小的k个数

输入整数数组 arr ,找出其中最小的 k 个数。例如,输入4、5、1、6、2、7、3、8这8个数字,则最小的4个数字是1、2、3、4。示例 1:输入:arr = [3,2,1], k = 2输出:[1,2] 或者 [2,1]示例 2:输入:arr = [0,1,2,1], k = 1输出:[0]方法一:快排后返回数组1.1直接使用Arrays.sort()方法对数组进行排序,再用Arrays.copyOf()方法返回数组arr中最小的k个值。class Solution { pu

2021-03-23 22:18:50 295

原创 算法刷题【9】栈的压入,弹出序列

输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。思路:在将所给序列压入栈后,马上判断这个元素是否为弹出序列的对应元素,如果是就弹出,如果 不是,就继续压入下一个元素。直到压入所有元素后,如果栈为空,则说明该序列是该压栈序列的弹出序列。class Solution {

2021-03-21 22:05:34 122

原创 算法刷题【8】使用两个栈实现队列

题目用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )思路:创建一个入栈,一个出栈,一个元素先入 “入栈”,弹出后再压入“出栈”就可以达到先进先出的效果,等同队列。需要注意的点是,在删除头部元素方法中,一定要注意先判断的先后顺序,1.先判断out栈是否存在元素,如果存在就直接弹出该元素,即为删除队尾元素2.一定要先判断out栈是否

2021-03-21 20:50:21 67

原创 算法刷题【7】第一个只出现一次的字符

在字符串 s 中找出第一个只出现一次的字符。如果没有,返回一个单空格。 s 只包含小写字母。示例:s = “abaccdeff”返回 “b”s = “”返回 " "第一个思路,用HashSet,但是没成功,这里记录下,望大佬指出错误public char firstUniqChar(String s){ List<Character> list=new ArrayList<Character>();//创建一个字符型的哈希集合 for(int i=0;

2021-03-19 00:26:22 170 2

原创 算法刷题【6】替换空格

请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = “We are happy.”输出:“We%20are%20happy.”class Solution { public String replaceSpace(String s) { int length=s.length; char array[]=new char[3*length];//开辟一个为所给字符串长度三倍的字符型数组 int size=0;//记录新字符串的长度

2021-03-18 22:13:02 82

原创 算法刷题【5】从二维数值中查找

在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。示例:现有矩阵 matrix 如下:[[1, 4, 7, 11, 15],[2, 5, 8, 12, 19],[3, 6, 9, 16, 22],[10, 13, 14, 17, 24],[18, 21, 23, 26, 30]]给定 target = 5,返回 true。给定 ta

2021-03-18 21:25:20 70

原创 算法刷题【4】验证搜索二叉树

给定一个二叉树,判断其是否是一个有效的二叉搜索树。假设一个二叉搜索树具有如下特征:节点的左子树只包含小于当前节点的数。节点的右子树只包含大于当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。示例 1:输入:2/ 1 3输出: true示例 2:输入:5/ 1 4/ 3 6输出: false解释: 输入为: [5,1,4,null,null,3,6]。根节点的值为 5 ,但是其右子节点值为 4 。/**Definition for a binar

2021-03-17 22:22:24 86

原创 算法刷题【3】三数之和

给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?请你找出所有和为 0 且不重复的三元组。注意:答案中不可以包含重复的三元组。示例 1:输入:nums = [-1,0,1,2,-1,-4]输出:[[-1,-1,2],[-1,0,1]]我的最初思路:暴力三重循环后,去重。大佬思路:排序预处理+双指针,先对给的数组用Arrays.sort()进行排序,再对数组用进行遍历。在一次遍历中,再设置一个左指针和一个右指针进行遍历。

2021-03-17 20:13:53 190

原创 算法刷题【2】反向链表

题目反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL我的思路:因为对java链表不太熟悉,所以我直接查看了题解。方法一:迭代法:目前已知最优解,时间O(n),空间O(1)。先设置一个前置指针prev,指向前面一个结点(第一个prev指向null),创建一个next指针记录下当前结点curr的next结点,将当前结点curr的next指针指向prev结点,然后就让当前结

2021-03-14 23:20:15 240

原创 算法刷题【1】数组中的重复数字

题目在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中第一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。返回描述:如果数组中有重复的数字,函数返回true,否则返回false。如果数组中有重复的数字,把重复的数字放到参数duplication[0]中。(ps:duplication已经初始化,可以直接赋值使用。)我的第一次思路:两层fo

2021-03-13 15:21:00 124 1

原创 第一篇博客

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar

2021-03-05 11:05:55 44

空空如也

空空如也

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

TA关注的人

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