- 博客(6)
- 收藏
- 关注
原创 动态规划之01背包问题
问题描述01背包问题是所有类型的背包问题中最基础的一种,它是这样描述的:有一个可装下重量为capacitycapacitycapacity的背包,和一堆重量和价值已经给出的物品,分别由w1,w2,...wnw_1, w_2, ... w_nw1,w2,...wn和v1,v2,...,vnv_1, v_2, ... , v_nv1,v2,...,vn表示。求解的目标是在背包可承受重量内...
2019-09-04 18:43:24 359
原创 动态规划(Dynamic Programming)之切割钢条问题(rod cutting problem)
@[TOC](动态规划(Dynamic Programming)之切割钢条问题(cut rod problem))问题描述Seriling公司购买长钢条,将其切割为短钢条出售。切割工序本身没有成本支出。公司管理层希望知道最佳的切割方案。假定我们知道Serling公司出售一段长为iii英寸的钢条的价格为pip_ipi(i=1,2,...,i=1, 2, ... ,i=1,2,...,单位为美...
2019-09-03 18:01:00 812
原创 线性数据结构——线性表
数据结构数据结构可以用一个二元组来定义,DataStructure = (D,S)。其中D是数据元素的有限集,S是D上关系的集合。这里的关系代表着数据元素之间的逻辑关系,即逻辑结构,通常指集合、线性表、树、图四种结构。另一方面,某种数据结构在计算机中的具体排列情况又称为物理结构,分为顺序存储结构和链式存储结构。任何逻辑结构都只能由这两种物理结构来实现,选择不同的物理结构得到的性能和优点也各不相...
2018-09-12 11:15:56 291
原创 分治算法中的数学——求解递归式(代入法)
前言 在运用分治法将原问题分解成多个子问题后,通常可以得到一个关于时间复杂度的递归式,如T(n)=T(n/2)+O(1),如何求解递归式并得出该算法的时间复杂度O(f(n))就是我们要解决的问题。一般来说,有三种方法可以供我们选择,代入法、递归树法和公式法(即《算法导论》中所描述的主方法)。下面先从代入法开始讲起。代入法一、基本步骤猜测解的形式, 运用第二类数学归纳法...
2018-09-11 11:23:35 4139
原创 Reverse Singly LinkedList的方法探讨
今天在做LeetCode的一道Reverse Singly LinkedList题时,从discuss中汲取了不少经验,写文一篇做为总结和思考。1.三个pointer迭代的常规方法如图1所示,给出一个链表,现在我们要做的是把它翻转过来使得最终变为5->4->3->2->1的形式。最自然的想法是我们将每一个正在访问的结点(记为current)的next指针
2017-06-10 22:14:19 450
原创 问题:计算给定年月日的日期是星期几(泽勒一致性)
在学习java的时候遇到的一道练习题,感觉以后会用到,所以整理出来。克里斯汀·泽勒开发的用于计算某一天是星期几的算法,称为泽勒一致性。其公式如下(图片是从网上找的):h代表星期几(0为0星期六,1为星期日,...,6为星期五)q代表某月的第几天m代表月份(3为3月,4为4月,...,12为12月,1月、2月为上一年的13、14)k是世纪数,即[year / 100]j是世纪
2016-08-14 14:04:52 1506
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人