前言
对于android开发,我们大部分工作都是在应用层,但为了体现"技术含量",以及"知其所以然",以便在遇到具体问题时不至于束手无策,因此有必要了解底层的工作机制。
比如Android NDK 开发可能在平时的项目开发中不常用到,但是这并不代表其不重要。相反NDK的学习有助于加深开发者在阅读框架的源码理解,是Android开发人员的进阶过程中必须要掌握的技能。
为什么NDK越来越重要了?
一是短视频、直播等行业迅猛发展。音视频+社交成为流量新的增长点。近两年,短视频、直播、网络视频等行业不断爆热,其中抖音一骑绝尘,日活已破2.5亿,替代QQ/微信登上19年猪年春晚,成为又一国民级APP。
二是新一轮技术如人工智能、5G、物联网等新技术的融合发展,将不断寻找实用落地点,这在移动为王的年代,80%市场份额的安卓是最大受益者。据运营商消息,2019年下半年,5G手机在国内上市,2020年全面商用,届时音视频将迎来又一波热潮。
而在实际具体应用上,除了上面提到的短视频方向,还有各大视频应用,图像处理、滤镜、裁剪等等骚操作都是需要专业的音视频开发知识才能做出来的。
正文
我们今天将说明以下 14 种模式:
1.滑动窗口
2.二指针或迭代器
3.快速和慢速指针或迭代器
4.合并区间
5.循环排序
6.原地反转链表
7.树的宽度优先搜索(Tree BFS)
8.树的深度优先搜索(Tree DFS)
9.Two Heaps
10.子集
11.经过修改的二叉搜索
12. 前 K 个元素
13. K 路合并
14.拓扑排序
我们开始吧!
1.滑动窗口
滑动窗口模式是用于