0%

  • 将原问题分解为一系列子问题逐步解决,根据先前的状态求解当前的状态。
  • 自底向上的计算顺序,求解当前问题需要保证规模更小的子问题的解已求出。
  • 本质上是一种空间换时间的策略,通过记忆化存储的方式避免重复求解相同的子问题,因而往往比递归效率高。
  • 空间复杂度往往可以进一步优化,二维数组变一维,一维数组变简单变量。这样做不仅节省空间,时间复杂度可能也会得到一定的常数优化。
Read more »

  • 贪心的核心思想是每一步都选择当前的局部最优解,从而最终获得全局最优解。
  • 通常来说,一个问题的贪心解法比动态规划解法高效,而且更加直观,易于实现,所以我们可以首先考虑是否能用贪心来做,然而难点在于如何证明贪心的正确性。
  • 贪心的题目变化多端,我们学习的更多是一种思维方式。但也有一些经典的题目类型(如区间重合问题),其原理大同小异。
Read more »

房价预测是我入门Kaggle的第二个比赛,参考学习了他人的一篇优秀教程:https://www.kaggle.com/serigne/stacked-regressions-top-4-on-leaderboard

通过Serigne的这篇notebook,我学习到了关于数据分析、特征工程、集成学习等等很多有用的知识,在这里感谢一下这位大佬。

本篇文章立足于Serigne的教程,将他的大部分代码实现了一遍,修正了个别小错误,也加入了自己的一些视角和思考,做了一些自认为reasonable的“改进”。最终在Leaderboard上的得分为0.11676,排名前13%。虽然最后结果反而变差了一点(没有道理啊!QAQ),但我觉得整个实践的过程仍然值得记录一下。

废话不多说,下面进入正文。

Read more »

泰坦尼克号幸存预测是本小白接触的第一个Kaggle入门比赛,主要参考了以下两篇教程:

  1. https://www.cnblogs.com/star-zhao/p/9801196.html
  2. https://zhuanlan.zhihu.com/p/30538352

本模型在Leaderboard上的最高得分为0.79904,排名前13%。

由于这个比赛做得比较早了,当时很多分析的细节都忘了,而且由于是第一次做,整体还是非常简陋的。今天心血来潮,就当做个简单的记录(流水账)。

Read more »

UML作业架构设计

这一单元的作业本质上是对数据之间的联系进行解析,并重新建立数据结构以方便查询的工作,这就要求我们了解各种UmlElement的结构以及他们之间的关系是如何组织的。

Read more »

JML语言理论基础梳理及工具链

注释结构

JML以javadoc注释的方式来表示规格,每行都以@起头。

  • 行注释://@annotation
  • 块注释:/* @ annotation @*/
Read more »

第五次作业

本次作业,需要完成的任务为单部多线程傻瓜调度(FAFS)电梯的模拟。

设计策略

先来先服务的单电梯是一个标准的"生产者-消费者"模型。虽然在本次作业中调度器似乎是不必要的,但为了更好地应用"生产者-消费者"模型,并方便下一次作业的扩展,还是应该保留了调度器的概念,将其作为"托盘"来存放还未服务的请求。

Read more »

第一次作业

第一次作业需要完成的任务为简单多项式导函数的求解。

思路

因为仅仅是简单多项式的求导,所以求导本身没有什么可说的,直接套用幂函数的求导公式就行了,主要的精力是花在了正则表达式上。这里推荐两个网站:

Read more »