- 博客(18)
- 问答 (1)
- 收藏
- 关注
原创 LeetCode199
相当于二叉树的按层级遍历的进阶,我们按照之前文章写过的二叉树层级遍历:https://blog.youkuaiyun.com/C_lea/article/details/152413818?给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。只要我们在每一层循环的时候,判断一下当前循环的是不是最后一个节点即可,只要是最后一个节点,那么就把结果加入进去。
2025-10-03 22:38:45
344
原创 树的遍历方式总结
优先访问根节点,然后访问左子树,最后访问右子树,根节点->左子树->右子树按照定义,那么上述demo的结果可以很好得出来:A->B->D->G->H->E->I->C->F那么算法怎么实现呢?
2025-10-02 18:14:38
422
原创 链表转置算法
node(4)->node(3)->node(2)->node(1)->node(0)结果,但是运行的时候发现不正确,,这个会导致链表的next指针被修改了,那么n.next肯定指向不了真正的下一个对象。**思考步骤:**遍历一次就要形成一个新的转置链表,首先想到的就是。所以我们需要定义一个临时变量,保存链表的next内容。看上去很简单,整个遍历完毕后,就是。我们在遍历链表的时候肯定是这么来的。但是我们在上文遍历的情况下,设置了。最后输出的pre就是转置后的链表了。给出链表node,如何转置并输出。
2025-10-01 22:44:19
282
原创 从源码角度来学习Activit的启动流程
免责声明:本文是本人的学习记录文档,有问题可以评论区指出,谢谢从桌面点击icon图标拉起进程,这个就涉及到很多逻辑了,我们一步步来看。最终会走到startActivityForResult()ok,我们开始正式进入源码中最复杂的部分,execStartActivity(),我们继续往下看源码who:启动 Activity 的上下文contextThread:ActivityThread 中的 ApplicationThread 对象 mAppThreadtoken:令牌,标识着 Activity,
2025-08-31 06:31:13
276
原创 android aidl相关学习
Android AIDL跨进程通信配置要点:客户端和服务端必须保持完全相同的AIDL文件(包括包名、文件名和内容)。配置时需要先在main目录下创建aidl文件夹,定义接口方法时需指定参数方向(如in表示输入)。编译后会生成包含Stub和Proxy的IMyAidlService.java文件,其中Stub用于服务端实现,Proxy用于客户端调用。关键代码包括接口描述符、事务编号定义及跨进程通信的Parcel数据读写处理。
2025-08-17 15:27:16
1173
原创 手搓2048小游戏
摘要:基于Android原生ViewGroup和View的2048游戏实现 本文介绍了一个使用Android原生控件实现的2048小游戏项目。项目结构包含自定义数字块视图(EntityNumView)、触摸面板(TouchView)、背景视图(MainBackView)、2048核心逻辑类(Two028Helper)和主活动(Main2028Activity)。2048的核心逻辑采用N*N数字矩阵处理,通过挤压合并和随机数生成实现游戏机制。难点在于Android视图处理,包括方向判断、视图测量布局、移动动画
2025-07-20 13:35:54
715
原创 Android Intent各种意义
B拉起A的时候,B启动A的时候又加了FLAG_ACTIVITY_CLEAR_TOP和FLAG_ACTIVITY_NEW_TASK,且A的taskAffinity和B不一样,这种情况下开启了一个新的task,且栈中只有一个新实例A且在栈顶,和B不在一个栈,所以B不用出栈。这个Flag的意思,比如我现在有一个A,然后在A中启动B。但是还是存在一个弊端,假设A启动了B,B再启动A,如果A是singleTop模式,就会出现两个实例A,原因很简单,因为B这时候是栈顶,A不在栈顶所以singleTop就无法生效了。
2025-04-13 18:51:38
973
原创 Kotlin协程学习
可以看到这种情况下回调非常多,因为首先要网络请求等到学号数据返回,然后根据学号再查成绩单号,查到成绩单号后再根据这个查询数学成绩,整个过程都是网络耗时操作,且代码可读性可维护性比较差,这就是所谓的。此节主要讲一下,协程中常用的withContext、delay、suspend、Deferred到底是什么意思,用法是什么,想必这也是困扰大家很多的地方。我们举个场景:我们要获取学生的数学课程的成绩,首先根据学号获取到学生的成绩单子,再根据成绩单号查询对应的课程号,最后根据课程号查询到成绩,伪代码如下。
2025-04-06 08:12:34
1334
原创 IP地址分类与子网划分
那么参考ip地址划分的方式来进行子网划分,我们知道此学校申请的B类IP地址有16位网络号,那么我们可以将网络号再次拓宽一下,网络号位数增加一点,新增的网络号就是子网号。网络地址就是网络段,表面本网络,主机地址都是0的时候就是网络地址。(1)H1会在自己的局域网内,找到当前局域网内的子网掩码,将目的地址(H3)逐位相与,判断是否与自己的网络网络段是否一样,如果一样,转(2),不一样转(3)。增加了子网号后,可以看到原来的ip地址格式为<网络号,主机号>优化成为了<网络号,子网号,主机号>的形式。
2025-03-09 06:57:12
994
原创 Android控件事件分发原理
android核心机制,用户点击屏幕控件的时候,指尖触碰到控件,会有按下(down)、移动(move)、抬起(up)操作,这一系列操作简称为事件,看上去简单,实际上包含了复杂的事件分发逻辑。我们知道一个activity里面有viewgroup、还有view,viewgroup里面有各种view,view与view甚至还会重叠,那么系统是如何判断用户点击的是哪个控件呢?1.为什么当前的viewgroup被消费了,事件不会往下分发了呢?
2024-12-01 06:58:05
1854
原创 Android杂项
更新了androidSDK后,as点击android一些原生api后发现看不了源码,都是编译后的.class文件。(此路径基于Android Studio Koala | 2024.1.1版本)as设置中,sdk中勾选"Sources for android xx"即可。
2024-11-25 17:03:27
229
原创 Java线程池学习记录
如上文所说:会丢弃队列中最老的未处理任务,然后重新尝试执行任务。我们看下改了拒绝策略后,执行结果如下图:很容易理解,t3任务没了,因为此时t3在队列中,也还没有处理,所以丢弃了t3。
2024-11-24 05:49:49
1907
2
原创 计算机原码、补码、反码
其实这句话本身是有歧义的!原理很简单,因为计算机中,原码和反码对于0的表示有两种,即+0和-0,但是补码不会,因为补码对反码做了一个偏移(+1),所以8位的原码、反码只能表示[-127,127],但是补码可以表示到[-128,127]000 1000,其中0代表正数,1表示负数(这里假设机器是1个字节,8位,所以符号位一定是顶在最前面的,这里用。补码->反码:正数什么都不变,负数符号位不变,数值位-1操作,然后取反。的基础上,符号位继续不动,正数不变,负数得数值位+1,例如。
2024-11-10 22:19:05
747
原创 JFreeChart指定点与点之间连接折线
之前遇到过一个问题,需要用jfreechart来描点画图,获取shp文件的图形,后来用折线图实现,发现有个很大的问题,比如你的X坐标集合是{5,2,78,2,1},Y坐标集合是{54,23,78,21,3};正常情况下我们想要的肯定是(5,54)—>(2,23)—>(78,78)—>(2,21)—>(1,3)按照这个顺序连接,但实际上jfreechart他是先会给xy集合各自排序,然后重新连接,就会变成(1,3)—>(2,21)—>(2,23)—>(5,54)—&g
2021-02-25 20:11:00
828
2
原创 NoClassDefNotFound解决办法
NoClassDefNotFound解决办法原因解决办法maven官方库选择包导入包非spring项目spring项目原因虚拟机在编译时能找到合适的类,而在运行时不能找到合适的类导致的错误。NoClassDefFoundError错误,字面理解就是这个类的定义找不到,简单理解就是相应的包没有导入进去或者导入错误。解决办法我们常常遇到一些NoClassDefFoundError错误,只需要百度就能找到自己对应的错误导包,但也有偶尔的情况出现自己百度不到的包。这时候就需要maven官方仓库了。mave
2021-02-24 18:25:36
7571
空空如也
操作系统虚拟页式存储系统问题
2017-03-06
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅