自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 第10章 Service 和 BroadcastReceiver

Service 是 Android 四大组件中与 Activity 最相似的组件,它们都代表可执行的程序。Service 与 Activity 的区别在于:Service 一直在后台运行,它没有用户界面,所以绝不会到前台来。一旦 Service 被启动起来之后,它就与 Activity 一样,完全具有自己的生命周期。如果某个程序组件需要在运行时向用户呈现某种界面,或者该程序需要与用户交互,就需要使用 Activity;否则就应该考虑使用 Service。开发者开发 Service 的步骤与开发 Activi

2024-09-10 09:42:05 1190

原创 第9章 使用ContentProvider实现数据共享

如果将ContentProvider比作一个“网站”,那么如何对外提供数据呢?是否需要像Java Web开发一样编写JSP、Servlet之类的代码呢?答案是否定的。这种做法过于复杂,毕竟ContentProvider只是提供数据的访问接口,而不是像网站那样提供完整的页面。如果把ContentProvider当作一个“网站”,如何完整地开发一个ContentProvider呢?定义自己的ContentProvider类:该类需要继承Android提供的基类。向Android系统注册这个“网站”:在。

2024-09-03 17:19:15 1737

原创 第8章 Android数据存储与I/O

SharedPreferences 保存的数据主要是类似于配置信息格式的数据,因此它保存的数据主要是简单类型的 key-value 对。: 判断 SharedPreferences 是否包含特定 key 的数据。> getAll(): 获取 SharedPreferences 数据里全部的 key-value 对。: 获取 SharedPreferences 数据里指定 key 对应的 value。如果该 key 不存在,则返回默认值 defValue。

2024-08-28 15:41:18 1091

原创 第7章 图形与图像处理

本章要点:正如前面所介绍的,决定 Android 应用是否被用户接受的重要方面之一就是用户界面。为了提供友好的用户界面,应用中常常需要使用图片。Android 系统提供了丰富的图片功能支持,包括处理静态图片和动画等。Android 系统不仅提供了用于显示普通静态图片的 ,还提供了用于开发逐帧动画的 ,以及可以对普通图片使用补间动画的 。图形和图像处理不仅对于 Android 系统的应用界面非常重要,而且在益智类游戏和 2D 游戏中也大量应用。游戏的本质就是提供一个更逼真、能够模拟某种环境的用户界面,并根据特

2024-08-23 10:29:32 371

原创 第6章 Android应用资源

经过前面的介绍,相信读者对Android应用已有了大致的了解。如果从物理存在形式来分,Android 应用的源文件大致可分为如下三大类:在传统开发中,初学者很容易犯一个错误:直接在Java或Kotlin源代码中使用如"crazyit.org"、“hello"这样的字符串,或者直接使用123、0.9这样的数值,而且不添加任何注释。过了一段时间后,即使自己再去看原来写的程序代码,一时之间,也无法理解其中"crazyit.org”、"hello"字符串,123、0.9等数值的含义。这种方式就大大增加了程序的维护成

2024-08-14 17:07:33 921

原创 第5章 使用Intent和IntentFilter通信

在前面介绍Activity时,我们已经多次使用了Intent。当一个Activity需要启动另一Activity时,程序并没有直接告诉系统要启动哪个Activity,而是通过Intent来表达自己的意图:需要启动哪个Activity。Intent的中文意思即为“意图”。此时,可能会有读者产生疑问,假如甲Activity需要启动另一Activity,为什么不直接使用一个类似于的方法呢?这样岂不是更简单明了?实际上,这种方式虽然简洁,但却明显背离了Android的设计理念。

2024-08-11 22:38:21 597

原创 第4章 深入理解Activity与Fragment

Fragment必须嵌入Activity中使用,虽然Fragment有自己的生命周期,但它的生命周期会受到Activity的控制。例如,当Activity暂停时,其内的所有Fragment也会暂停;当Activity被销毁时,所有Fragment也会被销毁。只有当Activity处于活动状态时,程序员才可以独立操作Fragment。Fragment总是作为Activity界面的一部分。Fragment可以调用方法获取其所在的Activity,而Activity可以调用的或方法来获取Fragment。

2024-08-04 15:08:19 1357

原创 第3章 Android事件机制

无论是桌面应用还是手机应用程序,最常面对的就是用户操作,需要频繁处理的便是用户动作。为用户动作提供响应的机制即是事件处理。基于监听的事件处理基于回调的事件处理类专门用于描述手机设备上的配置信息,这些配置信息既包括用户特定的配置项,也包括系统的动态设备配置。程序可以调用Activity的如下方法来获取系统的一旦获得系统的对象,就可以使用该对象提供的如下常用属性来获取系统的配置信息。: 获取当前用户设置的字体的缩放因子。: 获取当前设备所关联的键盘类型。该属性可能返回(普通电脑键盘)、

2024-07-28 17:04:10 403

原创 剑指 Offer 27. 二叉树的镜像

算法的思路是递归地对二叉树进行镜像反转。对于任意一个节点,将它的左子树和右子树进行交换,然后递归地对左子树和右子树进行镜像反转。这个过程会一直递归下去,直到叶子节点为止。通过这个过程,整棵二叉树就会被镜像反转,即每个节点的左右子树被交换。将当前节点的左子树指向当前节点的右子树的镜像反转。将当前节点的右子树指向临时变量temp的镜像反转。将当前节点的左子树保存在一个临时变量temp中。如果二叉树为空,直接返回null。实现二叉树的镜像反转算法。

2023-07-16 14:53:24 76

原创 剑指 Offer 25. 合并两个排序的链表

【代码】剑指 Offer 25. 合并两个排序的链表。

2023-07-14 17:41:46 181

原创 剑指 Offer 24. 反转链表

【代码】剑指 Offer 24. 反转链表。

2023-07-11 16:59:30 74

原创 剑指 Offer 22. 链表中倒数第k个节点

时间复杂度:O(n)空间复杂度:O(1)

2023-07-06 20:53:02 64

原创 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面

【代码】剑指 Offer 21. 调整数组顺序使奇数位于偶数前面。

2023-07-06 20:29:59 47

原创 剑指 Offer 18. 删除链表的节点

【代码】剑指 Offer 18. 删除链表的节点。

2023-06-11 21:57:59 52

原创 剑指 Offer 17. 打印从1到最大的n位数

【代码】剑指 Offer 17. 打印从1到最大的n位数。

2023-06-07 16:56:53 52

原创 剑指 Offer 16. 数值的整数次方

【代码】剑指 Offer 16. 数值的整数次方。

2023-06-07 16:10:32 56

原创 剑指 Offer 15. 二进制中1的个数

【代码】剑指 Offer 15. 二进制中1的个数。

2023-06-06 19:53:33 52

原创 剑指 Offer 14- II. 剪绳子 II

【代码】剑指 Offer 14- II. 剪绳子 II。

2023-06-06 19:30:48 45

原创 剑指 Offer 14- I. 剪绳子

【代码】剑指 Offer 14- I. 剪绳子。

2023-06-06 19:19:24 54

原创 剑指 Offer 13. 机器人的运动范围

/通过深度优先搜索判断机器人能到达的格子数,并对搜索过程做记忆化优化。//sum记录机器人能到达的格子数。//越界或数位和大于k或已访问判断。//创建记忆化数组,初始化全为0。//从(0,0)位置开始搜索。//标记已访问,sum加1。//搜索函数,dfs。

2023-05-31 19:12:13 50

原创 剑指 Offer 12. 矩阵中的路径

/如果索引等于单词最后一个字符,说明找到整个单词,返回true。//如果起点字符等于单词第一个字符,开始搜索。//没有找到单词返回false。//将word转成字符数组。//边界或不匹配字符判断。//遍历矩阵所有位置。

2023-05-30 23:15:26 43

原创 剑指 Offer 11. 旋转数组的最小数字

【代码】剑指 Offer 11. 旋转数组的最小数字。

2023-05-30 20:48:16 47

原创 剑指 Offer 10- II. 青蛙跳台阶问题

【代码】剑指 Offer 10- II. 青蛙跳台阶问题。

2023-05-21 17:28:37 43

原创 剑指 Offer 10- I. 斐波那契数列

【代码】剑指 Offer 10- I. 斐波那契数列。

2023-05-21 16:58:51 46

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

Deque 是一种同时具有栈和队列性质的数据结构,具有双向遍历和灵活的操作特点,可以用作 LIFO 栈或 FIFO 队列,其中 ArrayDeque 具有更好的性能和更小的空间开销。Deque 的实现类包括 ArrayDeque 和 LinkedList,其中 ArrayDeque 是一个数组实现的双端队列,具有更好的性能和更小的空间开销。LinkedList 的优点是它具有良好的性能和灵活的操作,可以快速地在链表两端进行插入和删除操作,支持双向遍历,同时也可以用作普通的动态数组。

2023-05-19 21:31:20 59

原创 剑指 Offer 07. 重建二叉树

递归调用需要使用栈空间,栈空间的大小取决于递归树的深度,而递归树的深度最大为n。递归调用需要使用栈空间,栈空间的大小取决于递归树的深度,而递归树的深度最大为n。使用HashMap优化了rootIndex的查找时间复杂度为O(1)。遍历前序遍历和中序遍历每个元素一次。遍历前序遍历和中序遍历每个元素一次。

2023-05-19 17:10:37 57

原创 剑指 Offer 06. 从尾到头打印链表

【代码】剑指 Offer 06. 从尾到头打印链表。

2023-05-16 16:41:56 45

原创 剑指 Offer 05. 替换空格

这里使用了 StringBuilder 类来构建新的字符串,避免了对原数组进行修改,也提高了效率。方法来向 StringBuilder 中添加字符,避免了重复的计数操作。

2023-05-13 17:33:37 44

原创 Java-笔记-查找

有一个数列:白眉鹰王、金毛狮王、紫衫龙王、青翼蝠王猜数游戏:从键盘中任意输入一个名称,判断数列中是否包含此名称【顺序查找】要求: 如果找到了,就提示找到,并给出下标值。请对一个有序数组进行二分查找 {1,8, 10, 89, 1000, 1234},输入一个数看看该数组是否存在此数,并且求出下标,如果没有就提示"没有这个数"。

2023-05-13 17:04:19 41

原创 剑指 Offer 04. 二维数组中的查找

优化后的算法基于矩阵的特殊性质,从矩阵的右上角或左下角开始查找,依次排除行或列,直到找到目标数字或者查找完所有数字。第一个算法是暴力枚举法,它的时间复杂度为 O(m * n),其中 m 和 n 分别为矩阵的行数和列数。第二个算法是优化后的算法,它的时间复杂度为 O(m + n),空间复杂度为 O(1)。以上是两个不同算法的 Java 代码,用于在一个二维数组中查找目标数字。

2023-05-13 17:03:29 46

原创 剑指 Offer 03. 数组中重复的数字

【代码】剑指 Offer 03. 数组中重复的数字。

2023-05-13 16:15:54 36

原创 LeetCode:简单-9. 回文数

给你一个整数 x ,如果 x 是一个回文整数,返回 true;否则,返回 false。解释:从左向右读, 为 -121。从右向左读, 为 121-。因此它不是一个回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。解释:从右向左读, 为 01。因此它不是一个回文数。例如,121 是回文,而 123 不是。输入:x = -121。输入:x = 121。

2023-03-05 14:56:45 45

原创 LeetCode:中等-8.字符串转换整数 (atoi)

具体来说,小于 −231 的整数应该被固定为 −231 ,大于 231 − 1 的整数应该被固定为 231 − 1。将前面步骤读入的这些数字转换为整数(即,“123” -> 123, “0032” -> 32)。第 2 步:“4193 with words”(当前没有读入字符,因为这里不存在 ‘-’ 或者 ‘+’)字符串的其余部分将被忽略。由于 “-42” 在范围 [-231, 231 - 1] 内,最终结果为 -42。第 2 步:“42”(当前没有读入字符,因为这里不存在 ‘-’ 或者 ‘+’)

2023-03-05 14:55:18 46

原创 LeetCode:中等-7.整数反转

如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。假设环境不允许存储 64 位整数(有符号或无符号)。输入:x = -123。输入:x = 123。输入:x = 120。

2023-03-05 14:54:53 114

原创 python爬⾍笔试

1.尝试爬取地址为:https://www.theblockbeats.info/topic/87 下⾯的10篇⽂。章并使⽤beautiful soup解析到以下内容。4> 列表中⽂章的图⽚。

2023-03-05 14:08:09 53

原创 第三章练习

如果参数是偶数,# 那么collatz()就输出 number // 2,并返回该值。else:# 如果 number 是奇数,collatz()就输出并返回 3 * number + 1。

2023-01-11 22:03:41 103

原创 LeetCode:中等-5. 最长回文子串

给你一个字符串 s,找到 s 中最长的回文子串。解释:“aba” 同样是符合题意的答案。输入:s = “babad”输入:s = “cbbd”s 仅由数字和英文字母组成。

2023-01-11 22:00:10 82

原创 LeetCode:困难-4. 寻找两个正序数组的中位数

给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数。解释:合并数组 = [1,2,3,4] ,中位数 (2 + 3) / 2 = 2.5。输入:nums1 = [1,2], nums2 = [3,4]输入:nums1 = [1,3], nums2 = [2]算法的时间复杂度应该为 O(log (m+n))。解释:合并数组 = [1,2,3] ,中位数 2。输出:2.00000。输出:2.50000。

2022-12-14 12:54:30 80

原创 LeetCode:中等-3. 无重复字符的最长子串

请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。输入: s = “abcabcbb”s 由英文字母、数字、符号和空格组成。输入: s = “pwwkew”输入: s = “bbbbb”

2022-12-14 11:01:45 89

原创 LeetCode:中等-2.两数相加

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例 1:输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.示例 2:输入:l1 = [0], l2 = [0]输出:[0]示例 3:输入:l1 = [9,9,9,9,9,9,9], l2 =

2022-06-20 11:08:30 165 1

空空如也

空空如也

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

TA关注的人

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