- 博客(17)
- 资源 (22)
- 收藏
- 关注
原创 斐波那契数列3种解法(朴素递归、动态规划、数学归纳)及算法分析
本文来自网易公开课的第3讲分治法。让我对分治法的使用有了一个新的认识。今天论述的主要对象是斐波那契数列,先了解一下什么是斐波那契数列。斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契
2013-11-28 15:41:34 9129
原创 OSChina_IOS版客户端笔记(四)_程序数据、缓存的管理
程序的数据缓存问题。首先常见的程序数据可以分为以下几种:· 列表、表格等在线请求的动态数据· 图片数据,可以是列表中在线请求的· 用户信息、程序设置、程序版本信息等列表数据的缓存:观察OSChina的iOS版发现,每次切换UISegmentController后都会进行数据的在线请求,而没有使用缓存数据(也可能是有某个代码开关本人没看清楚吧)。总之这篇文章也不是基于OSChin
2013-11-27 10:26:27 1701
原创 OSChina_IOS版客户端笔记(三)_列表数据加载
列表数据加载,主要由上拉加载更多和下拉在线更新组成。上拉加载更多,这个还是比较简单的,就是判断服务器数据是否已经加载完成了,如果是的话列表最后一项显示"已加载全部数据",否则显示一个"加载更多"的按钮,单击就可以请求数据,进而刷新列表。这里OSChina写了一个自定义的LoadingCell(继承自UITableViewCell,包含了一个UILabel和UIActivityIndicator
2013-11-26 20:13:49 1641
原创 贪心算法_哈夫曼编码问题(Huffman Coding)
哈夫曼编码问题,可以用贪心算法来解还是比较爽的啊(上一篇博客我在想贪心算法能解的问题不多)。下面来详细讨论一下哈夫曼编码问题。问题描述:现有一个文本文件,其中包含的字符数据出现的次数各不相同,先要求对该文本中包含的字符进行编码,使文本占用的位数更小。问题分析:我们知道文件的存储都是以二进制数表示的,如:字符c可以表示为010101之类的。因为不同的操作系统对于不同的数据类型会分配给相同的数
2013-11-26 15:21:30 9267 1
原创 OSChina_IOS版客户端笔记(二)_程序主框架
本文将分析一下OSChina iOS客户端程序的主框架实现,并在尝试整理了一个最简单的框架。OSChina的主框架图介绍:1、在AppDelegate中创建多个UINavigationController,将这些UINavigationController添加到一个UITabBarController上,最后将UITabBarController设置为self.window的rootCon
2013-11-24 20:40:15 1778 2
原创 OSChina_IOS版客户端笔记(一)_开篇
我觉得就个人能力提高而言,做一个框架设计的不是很好的项目,还不如自己看一个开源库、开源项目来的提高的快。恰好最近iOS和Android的项目上线了,新项目也还没开始,于是有点空闲时间。接下来的一周左右的时间里,我会学习一下OSChina的iOS版客户端,个人觉得这个客户端做的还不是很完善(相较于Android版而言),还有很多可以优化的地方。不过对于我这样一个只学了2个月iOS,完成一个项目。。。
2013-11-24 20:39:59 1566
原创 贪心算法_活动安排问题
看了下贪心算法,直觉上以为适用于用贪心算法解决的问题好像并不多啊,不过现在先不说这个。先讨论下动态规划和贪心算法的不同之处,下面是一些本人结合书本得出的体会:1、动态规划通常是自底向上求解问题的(当然也可以是"带备忘"的自顶向下求解问题),每一次选择都面向多个子问题选择,只不过这些子问题的解都是基于那些已经求解的子子问题的解。从本质上说动态规划遍历了所有的可能解,只是在求解子问题时使用了“子子
2013-11-21 10:37:17 5212 2
原创 动态规划_矩阵链连乘问题
矩阵链连乘问题:由于不同的矩阵相乘顺序会导致不同的矩阵标量元素相乘的操作数,求设矩阵队列A1A2A3...An-1An的最小相乘操作数。好吧,先让我们回顾一下线性代数中矩阵乘法的相关知识(其实看到这个题目时我已经忘了两个矩阵是怎么相乘的了,刚好回顾一下),两个矩阵只有相容才能相乘。即A x B要求A的列数等于B的行数。如[n x m]和[m x p]的两个矩阵是可以相乘的,且它们相乘的标量运算
2013-11-17 15:52:59 1665
原创 动态规划_钢条切割问题
继续扯动态规划的思想,首先动态规划的关键在于重复子问题特性。因为这一特性导致了动态规划思想优于分治法,动态规划将重复子问题的解保存起来,再自底向上求解上层子问题(也可以称为子阶段,如背包问题中,我认为称为子阶段更恰当)。动态规划很仔细的安排子问题的求解顺序,即在求解一个某个子问题时,该子问题的子子问题的解都已经求的,并被保存起来了,只需从内存中读取,而无需再次求解。这就话很重要啊,这就是为什么在解目标长度为n的钢条切割问题时,要使n从1开始递增的原因了。好了,关于动态规划的思想,留些下次再扯吧,下面是程序代
2013-11-14 18:50:04 1773
原创 动态规划_01背包问题
01背包,很经典的背包问题。为什么叫01背包呢?就是有或者没有,或者说一件物品装或者不装进背包。0表示不装,1表示装。好了,01背包问题就是有n个物品P1,P2,P3...Pn,对应的价值分别是V1,V2,V3...Vn。又有一个背包,容量为C。求该背包中能装下物品的最大价值。
2013-11-08 21:27:58 1375
原创 动态规划_最大公共子序列长度问题
昨晚部门出去吃火锅,十来个人有说有笑的,感觉很不错,不过因此昨天的"每日一题"也就没时间了,现在补上。问题:有两个字符串A=a1 a2 a3 ... an和B=b1 b2 b3 ... bm,求两者的最大公共子序列的长度,这里的公共子序列就是相同的两个字符串中字符相同的子序列。如:abcdefg 和 acghlm的最大公共子序列是acg。下面来聊聊本人对动态规划的一点浅显的想法,权当抛砖引玉只
2013-11-08 18:55:49 1065
原创 动态规划_最大子路径和问题
看到动态规划,目前还是不能很透彻的理解状态转移的思想,不过基于“每日一题”的目标,在看了一个动态规划的问题(即最大子路径和问题)的介绍之后还是动手写了一个程序,关于动态规划的思想,可能还需要在做更多的题目,慢慢的体会吧。package com.wly.algorithmbase.dailyproblem;import java.util.ArrayList;/** * 动态规
2013-11-06 19:24:57 1426
原创 回溯法_n皇后问题
尼玛,终于写好了~~~,菜鸟写个题目不容易啊 昨晚看了下回溯法,回溯法其实就是深度优先检索,不断的按最优解先进,当前面没有可用解时,在回溯到上一个可用解,重新选择新的可用解。之后了解了下8皇后问题,就动手写了。这篇文章叫每日一题,不知道自己能坚持几天。
2013-11-05 20:36:30 1244
原创 AsyncTask,Handler,Looper,MessageQueue
一堆东西,AsyncTask、Handler、Looper、Thread Pool、Executor。容我一个一个看过来,该翻译的翻译,该写demo的写demo。当然可能不会写的太过深入,因为每个都展开来的话都可以写一篇博客了,这里以了解为主。 一、Handler Handler在程序中用的还是比较多的,通常会使用Handler在UI线程和后台线程之间传递消
2013-11-04 20:07:06 1248
原创 动态规划_最大子序列和问题以及最大子序列问题
看书看到用分治法解最大子序列和的问题。看懂了思路后自己试着写了一下。所谓的分治法就是通过不断将求解范围划分成更小的的求解问题,知道问题范围不再可分为止。这里用到了递归。那么我不禁要想,递归和分治有什么区别,也不去Google了。递归的使用通常是当前问题是基于上一个更小范围的问题求解,这种关联关系是连续的。分治则是由"分"和"治"两部分组成的,这中间当然也是有递归的思想在的。这么说吧,求N阶乘问题就
2013-11-04 12:33:59 1543
原创 数据结构基础_栈和队列
来聊聊栈和队列,和数组比较栈和队列有插入数据迅速的优势,但是在查找数据时就没有数组来的快了。下面的代码实现了用数组实现栈,用链表实现队列以及用链表实现栈。 用数组实现栈package StackAndQueue;/** * 使用数组实现栈 * @author wly * @author 2013-10-23 */public class ArrayStack
2013-11-03 19:50:28 1449
原创 算法基础_递归的例子
写了几个常见的简单的递归的例子,包括n阶乘、三角形数、二分查找以及汉诺塔问题。很简单,不过确实是用递归的思想解的,那么递归是什么呢?不去百度,就现在用我自己的语言来说就是通过不断的调用自身使得问题的规模越来越小,直到最小规模。这里的最小规模就是递归的"基值情况"。要想用递归解问题,首先需要知道基值情况是什么,比如求N阶乘的基值情况是n=1。不再废话,上代码。 package
2013-11-03 19:06:21 1274
puzzle15_v2代码
2013-12-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人