c++算法
吃不尽的lemon
——What's the secret to good comedy?
——Timing.
——And what's courage?
——Grace under pressure.
——Who's the boss?
——I'm the boss.
展开
-
算法设计与分析-动态规划 最长上升子序列
文章目录思路:按照之前的分析方法1.先分解出子问题1.1 不符合要求的子问题1.2 符号无后效性的子问题2.确定状态3.状态转移方程代码:trymax_element详解思路:按照之前的分析方法1.先分解出子问题1.1 不符合要求的子问题前n个元素的最长子序列情况可能不唯一,其终点大小可能不同,第n+1个元素加入后,受前面状态的影响,可能变长,也可能不变。1.2 符号无后效性的子问题2.确定状态位置相关,状态由位置表示。3.状态转移方程maxlen(k) 它的长度就是在以原创 2020-05-13 16:28:00 · 341 阅读 · 0 评论 -
算法设计与分析-动态规划-数字三角形(2)
文章目录有了[数字三角形(1)](https://blog.csdn.net/qq_40427276/article/details/106079994)的基础,下面,我们进一步改进向着动态规划进发。进一步的改进分析so递归到动态规划的一般转化思路1.分解为子问题2.确定状态3.找边界值4.确定状态转移方程(递推公式)什么问题可以用动态规划1.最优子结构2.无后效性有了数字三角形(1)的基础,下面,我们进一步改进向着动态规划进发。进一步的改进递归虽然简单方便,效率实在不敢恭维,许多时候我们需要把递归改原创 2020-05-12 20:32:26 · 350 阅读 · 0 评论 -
算法设计与分析——动态规划-数字三角形(1)
文章目录引入小例题1 数字三角形(分析为什么不能单纯用递归思路解决)改进:存放计算结果动手实现:引入小例题1 数字三角形(分析为什么不能单纯用递归思路解决)本题用递归做看似十分简单,但递归的缺点是太慢了,特别对于本题而言,重复计算十分多。改进:存放计算结果动手实现:#include <iostream>#include <algorithm>using namespace std;#define MAX 101int D[MAX][MAX];原创 2020-05-12 19:58:14 · 700 阅读 · 0 评论 -
leetcode-- 盛最多水的容器
11.盛最多水的容器给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2目标:最大面积显然本题是寻找水覆盖的最大面积=height*width 其中...原创 2020-05-02 19:53:26 · 180 阅读 · 0 评论 -
剑指offer 4.二维数组中的查找
文章目录题目描述方法1.暴力遍历关于auto变量的自动类型推断。C++11新特性方法二 利用特性缩小范围对于有序数组,无论一维还是二维的题目,都有其可缩小范围的特性位置选取:我们需要一点,对于target和它比较,大于和小于的两种情况,只有一条唯一固定的移动方向,在该方向上才能找到符合值题解(二分法):数组行递增,可直接依次二分查询每一行即可没有找到特性也无所谓,一个行递增也可以用来加快查找速度...原创 2020-04-23 20:53:19 · 102 阅读 · 0 评论 -
cyc2018剑指offer刷题-3.数组重复数字问题
文章目录附:[java常见STL](https://blog.csdn.net/qq_42794545/article/details/88250939)3. 数组中重复的数字题目描述双重循环比较就太粗糙了时间复杂度O(n2),不做讨论extend:C++保险判别空指针1.初始菜鸟思路基于排序2.空间换时间3.利用题目独有的特性附:java常见STL3. 数组中重复的数字题目描述在一个长度...原创 2020-04-22 16:55:47 · 261 阅读 · 0 评论 -
常用排序算法稳定性分析
我们分析一下稳定性的好处:(1)如果排序算法是稳定的,那么从一个键上排序,然后再从另一个键上排序,第一个键排序的结果可以为第二个键排序所利用。基数排序就是这样,先按低位排序,逐次按高位排序,那么,低位相同的数据元素其先后位置顺序即使在高位也相同时是不会改变的。详细请参见随笔《基数排序》。(2)学习排序原理时,可能编的程序里面要排序的元素都是简单类型,实际上真正应用时,可能是对一个复杂类型(自...转载 2020-04-17 09:45:38 · 205 阅读 · 0 评论 -
n皇后问题
八皇后问题是一个经典的算法问题从64个格子中选8个格子,任意2个格子都不在同一行、同一列或同一个对角线根据组合数学:C64 取8,一共有4.426×10的9次方种方案最暴力的解法当然是八个for循环,每种情况都要尝试,效率太低。为简化运算我们分析一下限制条件1.由不同行且棋盘为8*8故每行都有一个皇后。我们只需要确定它的列用一个a[8]数组存储即可2.对角线条件观察很容易发现...原创 2020-02-12 10:46:56 · 141 阅读 · 0 评论 -
经典背包问题
一、背包问题的描述背包问题可以有多种形式,下面将对其逐一进行描述:(1)经典的0-1背包问题(无物品的价值):假设有一个能装入容量为C的背包和n件重量分别为w1,w2,,...,wn的物品,能否从n件物品中挑选若干件恰好装满背包,要求找出所有满足上述条件的解。当C=10,各件物品重量为{1,8,4,3,5,2}时,可以找到下列4组解:(1,4,3,2)、(1,4,5)、(8,...转载 2019-07-23 15:24:56 · 4957 阅读 · 0 评论