算法思路 - 差分数组

差分数组与前缀和数组什么是前缀和数组前缀和数组是一个辅助数组,下面给出定义:对于原数组 nums[i] , 其前缀和数组 sums[i] = (nums[0] + nums[1] + … + nums[i])前缀和数组下标为 i 的数字表示原数组从 0 到 i 的数的和。前缀和数组的性质前缀和数组主要用于频繁求区间和 :定义 nums[i, j] = (nums[i] + nums[i+1] +

- 阅读全文 -

算法思路 - 动态规划

动态规划什么是动态规划动态规划,Dynamic Programming,简称 DP。这个词其实是运筹学的一个分支,在求解决策中占重要地位。当然这里只是取其一个狭义的意思,就是算法题中的一种解题的方法,或者说思考方法。能用动态规划解决的题,有以下特点:问题能进行拆分,大问题能拆分成小问题,并且这些问题都有共同的特点这些问题能转换成一个函数,有输入和输出。这个函数的递推表达式容易得出有点抽象,不理解也

- 阅读全文 -

第四章 View 的工作原理 —— Android 开发艺术探索

第四章 View 的工作原理4.1 ViewRoot 与 DecorViewViewRoot 对应于 ViewRootImpl 类,是连接 WindowManager 和 DecorView 的纽带,View 的三大流程均通过 ViewRoot 完成,在 ActivityThread 中,当 Activity 对象被创建完毕后,会将 DecorView 添加到 Window 中,同时会创建 Vie

- 阅读全文 -

第三章 View 的事件体系 —— Android 开发艺术探索

第三章 View 的事件体系3.1 View 基础知识3.1.1 什么是 ViewView 是 Android 中界面层的控件的一种抽象,它代表了一个控件。它派生出的各种 子类 如 TextView 等,共同组成一个界面。同时,View 有一个很特殊的抽象派生类 ViewGroup,它可以存放多个 子 View。最终 整个 View 体系会形成一棵树,这和前端的 DOM 树类似。而 ViewGro

- 阅读全文 -

源码分析 —— Picasso

这是一个新的系列,我们一起来阅读一下一些优秀开源库的源码。先从简单到复杂,首先先来看看 Picasso 的源码。官网:https://square.github.io/picasso/Github 网址:https://github.com/square/picasso/Picasso 是什么?按照官网给的定义,Picasso 是A powerful image downloading and c

- 阅读全文 -