数据持久化
Android 数据持久化笔记
文件存储
写入文件
调用Context类中openFileOutput方法 返回一个FileOutputStream
openFileOutput(文件名(不允许包含路径,默认存储到/data/data//file/),操作模式:MODE_PRIVATE(方法默认的模式 覆盖) or MODE_APPEND(追加).
1234567891011121314151617181920private void save() { String data = "Data"; FileOutputStream out = null; BufferedWriter writer = null; try { out = openFileOutput("data", Context.MODE_APPEND); writer = new BufferedWriter(new OutputStreamWriter(out)); writer.w ...
动态规划(DP)
动态规划算法的核心就是通过状态转移将原题转换为数个相似小问题。
初识动态规划:
动态规划的基本方法:递推
一个经典的例子: Fibonacci数列
Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。
求解Fn,需知道Fn-1,Fn-2,而求Fn-1又需要知道Fn-2,Fn-3,需要一步步递推至F1,F2
我们使用一个递归方法来实现该简单算法
当我们输入6时根据递推公式 Fn=Fn-1+Fn-2 即:
F(6)=F(5)+F(4)
=【F(4)+F(3)】+【F(3)+F(2)】=…
12345678public int fibonacci(int n){ if(n<=0) return 0; if(n==1) return 1; return fibonacci( n-1)+fibonacci(n-2);}
假如我们输入的是6,那么我们执行的递归树如下:
显然在递归树中我们有多个节点被重复计算,例如F(2)被重复计算了5次,而且调用每一个函数的时候都要保留上下文,所以空 ...