摘要:
动态规划 前置知识:搜索、贪心、递归以及递推。 在同学们学习动态规划之前,请同学们先掌握基础的搜索以及递归和递推,这对我们学习动态规划有着很好的作用。注意学习动态规划与贪心的区别,所以需要同学们熟悉简单贪心算法。 引入: 相信在还没有学习动态规划之前,很多同学已经听说过关于动态规划的传说甚至有的同学 阅读全文
摘要:
(n最多10000位) 3<=x<=9; 判断3: 判断一个数是否是3的倍数,原理是将这个数的各个位上的数加起来,其和是3的倍数的话,那这个数便是3的倍数。 判断4: 判断一个数是否是4的倍数的方法:看这个数的末两位上的数是否是4的倍数。因为满百位的肯定是4的整数倍,100可以整除4 判断5: 判断 阅读全文
摘要:
问题引入 对于每一个问题,都会有相应的解,在之前的学习中求解的过程,都是以一条条线的形式产生可能解进行筛选验证是否正确。本章节我们来考虑另外一种思路,类似于洪水爆发,从一个源头开始逐渐蔓延开来,直到所有可达的区域都被洪水淹没,所以我们也把这种算法称之为洪泛法。洪泛法会以面的形式同步扩展更多的可行 阅读全文
摘要:
二分查找 二分查找也称折半查找,它是一种效率极高的查找方法。但是折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列,就是:数据要是有序排列的。备注:二分查找的一个非常重要的前提条件就是查找的内容具备单调性 举个例子 假如我们需要在10亿个不同的数字当中找到目标数字那么通过以往学习的 阅读全文
摘要:
字符串进阶-字符串函数应用 c++提供了大量的字符串函数,供我们在解题时使用。 一、常用函数介绍 1-长度 (有返回值) a.size() 或 a.length() 2-查找(有返回值) a.find("hello") //返回子串hello在a中第一次出现时开头字母h的下标 a.find('h') 阅读全文