【Leetcode】71. 简化路径

2019-12-30
阅读 1 分钟
868
以 Unix 风格给出一个文件的绝对路径,你需要简化它。或者换句话说,将其转换为规范路径。在 Unix 风格的文件系统中,一个点(.)表示当前目录本身;此外,两个点 (..) 表示将目录切换到上一级(指向父目录);两者都可以是复杂相对路径的组成部分。更多信息请参阅:Linux / Unix中的绝对路径 vs 相对路径 请注意,返...

【Leetcode】67. 二进制求和

2019-12-29
阅读 1 分钟
921
给定两个二进制字符串,返回他们的和(用二进制表示)。 输入为非空字符串且只包含数字 1 和 0。 示例 1: 输入: a = "11", b = "1"输出: "100"示例 2: 输入: a = "1010", b = "1011"输出: "10101" {代码...}

【Leetcode】66. 加一

2019-12-29
阅读 1 分钟
821
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 示例 1: 输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2: 输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数...

【Git】

2019-12-26
阅读 1 分钟
751

【网络】

2019-12-26
阅读 1 分钟
996
MTU: Maximum Transmit Unit,最大传输单元,即物理接口(数据链路层)提供给其上层(通常是IP层)最大一次传输数据的大小MSS:Maximum Segment Size ,TCP提交给IP层最大分段大小,不包含TCP Header和 TCP Option,只包含TCP Payload ,MSS是TCP用来限制application层最大的发送字节数。

【虚拟机】JVM、Davlik、Art

2019-12-26
阅读 1 分钟
1.2k
编译器确定的信息会放到class文件中的常量池中,加载后会放到运行时常量池中主要是字面量和符号引用Integer -128<127也会出现在其中String。intern也会出现[链接]运行时常量池JDK7在方法区中

【Java】多线程

2019-12-23
阅读 1 分钟
1.3k
Java多线程同步通过锁的概念实现,有互斥性和可见性。阻塞是一种状态,不占用CPU时间wait是挂起,需要等待唤起sleep是休眠,在指定时间由守护线程唤起Java使用的是系统线程,操作线程时需要切换从用户态到内核态,影响效率。

【Android】绘制

2019-12-18
阅读 3 分钟
1.5k
Surface从SurfaceFlinger通过dequeueBuffer申请buffer,新建了一个SkBitmap,再用这个Bitmap对象构造一个native的Canvas对象(SKCanvas)。ViewRootImpl会创建Canvas持有SKCanvas,这个Canvas就是我们可以操作的Canvas。

【Android】MessageQueue、Looper、Handler

2019-12-18
阅读 1 分钟
963
[链接]MainLooper附着在主线程上Looper.looper()循环从MeesageQueue获取消息交给Handler处理Handler向MessageQueue发送消息当队列为空时,将调用nativePollOnce方法,该方法将一直阻塞知道新的消息到来,在某个文件描述符上调用epoll_wait,新消息到来时将写入一个 IO 操作到描述符,唤醒线程。

【Android】Permission

2019-12-17
阅读 5 分钟
4.1k
[[链接]][链接]([链接]permission-group 给相关的权限声明一个逻辑上的分组名称。独立的权限要通过元素的permissionGroup属性来加入权限分组。同一分组的中成员会一起展现在用户的界面中。同一组的任何一个权限被授权了,其他权限也自动被授权。例如,一旦WRITE__CONTACTS__被授权了,__app__也有__READ__CONTACTS和GET_...

【Android】BoradcastReceiver ContentProvider

2019-12-17
阅读 3 分钟
1k
通过Action标识,可以自定义Action定义自己的广播动态注册addAction("android.net.conn.CONNECTIVITY_CHANGE"); //网络变化静态注册

【Android】Service

2019-12-17
阅读 1 分钟
936
Activity的上下文是不稳定的,当Acitivity被销毁后,子线程将失去管理。Activity是和ui绑定的Context,于是引入了和Activity无关的Context Service。Service是单例

【Android】旋转

2019-12-17
阅读 1 分钟
1.1k
(Configuration)的改变都可能对Activity的界面造成影响,这时系统会销毁并重建Activity以便反映新的Configuration。

【Android】沉浸式

2019-12-17
阅读 1 分钟
1.2k
有两个地方可以设置相关属性1.getWindow().getAttributes().fl2.getWindow().getDecorView().setSystemUiVisibility()两者作用域不一样style中设置的属性本质是对windows flag的赋值主要还是对DecorView的属性进行设置

【Android】 动画

2019-12-16
阅读 2 分钟
1k
他的实现机制是,在每次进行绘图的时候,通过对整块画布的矩阵进行变换,从而实现一种视图坐标的移动,但实际上其在 View 内部真实的坐标位置及其他相关属性始终恒定

【Android】触摸事件

2019-12-16
阅读 1 分钟
1.1k
触摸事件从Activity的dispatchEvent开始处理,其实还是由DecorView开始处理setOnTouchListener中的onTouch在OnTouchEvent前面,这样设计方便可以没有入侵的取消对触摸事件的处理。 Android触摸事件全过程分析:由产生到Activity.dispatchTouchEvent()

【Android】ListView RecyclerView

2019-12-16
阅读 1 分钟
985
RecyclerView并不处理布局,只处理资源的回收,将资源分为几级缓存进行复用,理解RecyclerView从两个方向入手,一是回收,二是布局。回收本身由RecycerView实现,逐层降级,如果最后也没找到,会调用onCreateViewHolder,如果已有这个View会直接取出来,如果数据改变了,就调用onBindViewHolder。

【Android】Fragment

2019-12-15
阅读 1 分钟
1.5k
从Activity中移除一个Fragment,如果被移除的Fragment没有添加到回退栈(回退栈后面会详细说),这个Fragment实例将会被销毁。

65. 有效数字

2019-12-12
阅读 2 分钟
1k
验证给定的字符串是否可以解释为十进制数字。例如: "0" => true" 0.1 " => true"abc" => false"1 a" => false"2e10" => true" -90e3   " => true" 1e" => false"e3" => false" 6e-1" => true" 99e2.5 " => false"53.5e93" => true" --6 " => false"-+3" => false"95a54e53" =&gt...

64. 最小路径和

2019-12-11
阅读 1 分钟
840
给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。 示例: 输入:[  [1,3,1], [1,5,1], [4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。

63. 不同路径 II

2019-12-11
阅读 1 分钟
713
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径? 网格中的障碍物和空位置分别用 1 和 0 来表示。 说明:m 和 n 的值均...

62. 不同路径

2019-12-10
阅读 1 分钟
1k
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。 问总共有多少条不同的路径? 例如,上图是一个7 x 3 的网格。有多少可能的路径? 说明:m 和 n 的值均不超过 100。 示例 1: 输入: m = 3, n = ...

61. 旋转链表

2019-12-10
阅读 2 分钟
801
给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。示例 1: 输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NULL向右旋转 2 步: 4->5->1->2->3->NULL示例 2: 输入: 0->1-&gt...

60. 第k个排列

2019-12-10
阅读 1 分钟
706
给出集合 [1,2,3,…,n],其所有元素共有 n! 种排列。按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下: "123""132""213""231""312""321"给定 n 和 k,返回第 k 个排列。 说明: 给定 n 的范围是 [1, 9]。给定 k 的范围是[1,  n!]。示例 1: 输入: n = 3, k = 3输出: "213"示例 2: 输入: n = 4, k = 9...

59. 螺旋矩阵 II

2019-12-10
阅读 1 分钟
876
给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例: 输入: 3输出:[ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ]]

58. 最后一个单词的长度

2019-12-09
阅读 1 分钟
881
给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0 。 说明:一个单词是指由字母组成,但不包含任何空格的字符串。 示例: 输入: "Hello World"输出: 5

57. 插入区间

2019-12-09
阅读 1 分钟
743
给出一个无重叠的 ,按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。 示例 1: 输入: intervals = [[1,3],[6,9]], newInterval = [2,5]输出: [[1,5],[6,9]]示例 2: 输入: intervals = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInt...

56. 合并区间

2019-12-09
阅读 2 分钟
1.1k
给出一个区间的集合,请合并所有重叠的区间。示例 1: 输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2: 输入: [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4] 和 [4,5] 可被视为重叠区间。

55. 跳跃游戏

2019-12-09
阅读 1 分钟
829
给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个位置。 示例 1: 输入: [2,3,1,1,4]输出: true解释: 我们可以先跳 1 步,从位置 0 到达 位置 1, 然后再从位置 1 跳 3 步到达最后一个位置。示例 2: 输入: [3,2,1,0,4]输出: false解释:...

54. 螺旋矩阵

2019-12-09
阅读 2 分钟
856
给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例 1: 输入:[ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]示例 2: 输入:[ [1, 2, 3, 4], [5, 6, 7, 8], [9,10,11,12]]输出: [1,2,3,4,8,12,11,10,9,5,6,7]