基本算法
文章平均质量分 85
TheSnowBoy_2
知乎:https://www.zhihu.com/people/wang-kang-84-84/activities
展开
-
【总结】动态规划概述
概述阶段划分 - 递推函数举例1 - 求连续子数组的最大和题目描述是否可用动态规划寻找阶段划分角度 - 寻找递推试探1 - 失败试探2 - 成功举例2 - copy paste经验思考题目大意关键设计角度我的设计网友的另一种设计空间复杂度大参考概述 动态规划,就实际的作用而言,把多阶段过程转化为一系列单阶段问题,利用各阶段之间的关系,逐个求解。 【核心观点原创 2017-08-27 16:10:14 · 769 阅读 · 0 评论 -
算法设计 -- 递归
递归概念与数学关系递归条件递归应用场景递归需要的关键部件递归的分类分类的角度尾递归尾递归的性质参考递归概念 递归,是程序自己直接或者间接调用自己。 作用: 1. 把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。 2. 减少程序代码量。 3. 容易阅读。 与数学关系数学归纳 动力系统模型递归条件 构成递归需具备的条件:(摘自 :百度百科) 1.原创 2016-10-07 00:48:13 · 933 阅读 · 0 评论 -
【总结】常见编程题型总结1-数据结构&算法
按照数据结构划分基本类型数组 - 1维数组的特性1维数组 查找 有序1维数组 与 回溯环形数组数组 - 2维地图类问题棋类问题链表队列栈树一棵树两棵树图按照算法思想划分数学相关计算几何题贪心法分治法动态规划连续区间问题不确定区间问题 转为 基于某种标准的坐标问题试探法 及时舍去回溯法VS 暴力法回溯法解题的关键要素基本实现一些题库更新中原创 2017-08-15 15:44:04 · 2420 阅读 · 0 评论 -
【数学 与 算法】卡特兰数 - 有多少种出栈情况?等
感想体现的数学思想丰富:【抽象的艺术】数学真是一个神奇的东西。一个卡特兰数居然有如此广泛的应用,抽象概括了如此多的现实状况。(体会到了一些递推数列的价值)【卡特兰数的应用】凸包的多边形划分、矩阵的连乘的数目、括号匹配的数目、出栈情况的数目等。【卡特兰数的发现技巧】卡特兰数的技巧在于划分,找到一种划分方式,能够将某个序列划分成前后独立的序列(进而可利用乘法原理)。转载 2017-08-26 11:06:13 · 1011 阅读 · 0 评论 -
二分查找概述
二分查找的前提有序二分查找的两个关键点缩减规则的制定例子在有序数组中二分查找某个数例子寻找最近的K个数边界控制二分查找的前提:有序。 这些序信息能够确保你可以大胆的缩减空间,进行定位。二分查找的两个关键点:1.缩减规则的制定。 我们接触的二分查找很多是从有序数组中查找某个数,所以缩减规则比较单一。(大于目标值,往哪边走,小于往哪边走?) 但实际中还有很多复杂的场景,比如说寻原创 2017-08-21 09:22:43 · 843 阅读 · 0 评论 -
【总结】常见编程题型总结2-解题
审题输入输出限制条件时间限制空间限制是否允许修改原数据结构题目转化审题 相关题目的描述是十分多样的,所以我们需要将题目中的信息转化为我们能够识别的的形式。(下面提供一些角度,主要以问题的形式提出)输入1.什么形式的输入?(数组,链表,图?)2.数据内容有何限制?(考虑数据内容,是因为考虑计算机编码本身可能存在的一些问题以及数据的一些运算性质)是否是整型(字符串)?如果是字符串,是原创 2017-08-15 16:15:19 · 762 阅读 · 0 评论 -
算法思想 -- 贪心算法(1) -- 基本概念及步骤
摘自《算法的乐趣》贪心算法概述概念最优子结构基本思想贪婪法求解步骤示例例 1寻找最大值例2图的最小生成树的问题贪心算法概述关键: 问题分解。 在寻找最优解时候,有很多常用的办法,比如说:贪心,分治,回溯,动态规划等等。这些思想有各自的优势,也相互联系,相互区别。贪心算法,动态规划,和分治法都需要对问题进行分解,定义出问题的最优子结构。贪心算法是一种比较简便的方法,通过简单的贪心规原创 2017-06-17 21:49:25 · 16528 阅读 · 0 评论 -
算法思想 -- 贪心算法(2) -- 需解决的2个主要问题
基本问题2个基本问题举例贪心算法 vs 动态规划问题1贪心算法适用场景局部最优 全局最优问题2贪心策略定义贪心策略合理性证明寻找贪心策略的技巧主要参考: 【百度文库PPT】贪心策略 【CSDN】贪心策略的特点与应用 基本问题使用贪心算法应注意 局部最优与全局最优的关系。这是贪心算法能够应用的一个十分重要的基础。2个基本问题应用贪心算法解决问题时,需注意两个问题:该题是否适原创 2017-06-22 11:46:46 · 1461 阅读 · 0 评论 -
算法思想及数据结构 -- 总结
数学数据结构算法程序的设计过程算法思想动态规划线性规划数据结构树最近公共祖先Lowest Common Ancestor 网上经验数学,数据结构,算法 【王boy】学习数据结构有什么用? 【王boy】递推与递归的区别?程序的设计过程算法思想动态规划什么是动态规划?动态规划的意义是什么?线性规划线性规划(抽象层次) 线性规划(代码实现单纯形法) 线性规划(代码注释较多)数据结构原创 2017-01-25 12:20:49 · 1531 阅读 · 0 评论 -
算法思想 -- 分治算法
分治法介绍 在计算机科学中,分治法是建基于多项分支递归的一种很重要的算法范式。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并。(参考 :wiki分治法) 分治法 & 数学 分治法本质上是数学归纳法,所以分治法的算法的正确性可以通过数学归纳法证明的方式来证明。(PS: 动态规划也是数学归纳)分治原创 2017-02-12 13:15:41 · 1500 阅读 · 0 评论 -
算法设计 -- 初步感想
算法设计:1.对于一个给定的问题,分析问题的构成要素,限制因素,目标。2.对于问题进行分析,分出相应的步骤,然后实现各个步骤。 (例:(1)先排序,(2)然后才能用二分查找)原创 2016-06-06 00:01:02 · 1156 阅读 · 0 评论 -
各大高校的ACM在线测评系统
原文地址我们学各种编程语言的同学一定要来这些地方做些题看下自己的水平山东理工大学http://acm.sdut.edu.cn/南阳理工学院 http://acm.nyist.NET/JudgeOnline/浙江大学 http://acm.zju.edu.cn 北京大学 http://acm.pku.edu.cn/JudgeOnline或者http://poj.org/转载 2016-11-22 22:39:12 · 10153 阅读 · 0 评论 -
数据结构 -- 简单体会
一、数据结构的作用对于数据结构的作用,刚开始不是很清晰,随着学习的深入,逐渐明白数据结构的作用。数据结构:即为数据的组织结构。1.为何数据需要组织结构?1.1.当数据量增大时,需要进行组织。以人物为例。(此处将人看做基本单位)(1) 远古时代,人们生活简单,不需要进行复杂的事物处理。各个个体相对是独立的。(数据是否存在独立的时期?)(2) 随着社原创 2016-06-22 11:26:57 · 1952 阅读 · 0 评论 -
背包问题
概述一般描述0-1背包问题案例数学符号化状态转移方程根据状态转移方程 进行编程概述背包问题(Knapsack problem)是一种组合优化问题。一般描述问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高。需要说明:【一类问题】上面的一般表述,是较为抽象的,因为要概括这一类问题。为直观理解所以就抽象到该层次,如果继续抽象原创 2017-07-06 22:40:33 · 1444 阅读 · 0 评论