微信扫一扫打赏支持

随笔分类 -  7_录播课

上一页 1 2 3 4 5 6 7 8 9 10 ··· 20 下一页
摘要:算法与数据结构 4.7、最大子段和-动态规划 一、总结 一句话总结: a、最大子段和有对应的动态规划的解法,找到题目的规律, b、根据规律设置状态f[i]表示以第i个元素结尾的子序列的最大值, c、那么状态转移方程为f[i]=max(f[i-1]+a[i],a[i]) (2<=i<=n) #incl 阅读全文
posted @ 2020-06-04 13:11 范仁义 阅读(255) 评论(0) 推荐(0)
摘要:算法与数据结构 4.6、最大子段和-贪心优化 一、总结 一句话总结: 1、时间方面优化:循环可以合并(循环方向一致,循环最大值也是,并且两个循环之间没有什么逻辑操作代码) 2、空间方面优化:代码中只用到了a[i],所以a[]数组可以用一个变量来代替 #include <iostream> #incl 阅读全文
posted @ 2020-06-04 08:52 范仁义 阅读(280) 评论(0) 推荐(0)
摘要:算法与数据结构 4.5、最大子段和-贪心解法 一、总结 一句话总结: 贪心求解最大连续子序列的和,其实贪心得到的局部最优解是所有以a[i]结尾的子序列和最大的s[i],在s[i]中找最大的就是全局最优解,时间复杂度为O(n) 算法步骤: 1、找到以a[i-1]结尾的连续非空子序列中和最大s[i-1] 阅读全文
posted @ 2020-06-04 07:42 范仁义 阅读(1195) 评论(0) 推荐(0)
摘要:算法注意 1、取用数据之前一定要保证数据存在 一、总结 一句话总结: 动态规划中,f[j]=f[j] + f[j-w[i]]结构,肯定要保证j-w[i]>=0,也就是取数据之前,一定要保证数据是存在的 1、算法里面常常描述的状态是什么意思? |||-being (比如初始状态、中间状态、结束状态) 阅读全文
posted @ 2020-06-03 17:00 范仁义 阅读(166) 评论(0) 推荐(0)
摘要:算法与数据结构 4.4、最大子段和-分治优化原理 一、总结 一句话总结: 在本题中,分治能够优化枚举的原理就是分治策略创造了信息(比如本题第二种情况子序列一定包含mid),让我们可以拿这个信息将枚举从O(n^2)的算法优化到了O(n) 1 //下面代码是没用好分治创造的信息的分治法代码,只能过两个点 阅读全文
posted @ 2020-06-03 10:10 范仁义 阅读(287) 评论(0) 推荐(0)
摘要:算法与数据结构 4.2、最大子段和-枚举优化 一、总结 一句话总结: 对最大子段和的枚举优化,就是通过预处理来减少重复的计算 /* 枚举优化 可以把求和的那层循环去掉,我们可以对数据做预处理 用s[i]表示第一个数到第i个数这个序列的和 那么求s[i-j](第i个数到第j个数这个序列的和)的时候, 阅读全文
posted @ 2020-06-02 09:14 范仁义 阅读(239) 评论(0) 推荐(0)
摘要:算法与数据结构 4.1、最大子段和-枚举解法 一、总结 一句话总结: 枚举解法就是按照题目要求,枚举出子段,对子段进行求和,求出里面和最大的即可,思路简单,但是效率不高 枚举变量:每一段的起点、终点 枚举范围:起点:1-n,终点:起点-n 枚举判断条件: 求和得到每一段的和,在这些和里面选出最大的 阅读全文
posted @ 2020-06-02 08:35 范仁义 阅读(446) 评论(0) 推荐(0)
摘要:算法与数据结构 3、砝码称重 一、总结 一句话总结: 砝码称重有基本的枚举解法,也有对应的01背包和多重背包的解法,对背包我们可以进行空间优化,对这题也可以进行bitset优化 /* C++的 bitset 在 bitset 头文件中,它是一种类似数组的结构, 它的每一个元素只能是0或1,每个元素仅 阅读全文
posted @ 2020-06-01 08:02 范仁义 阅读(1757) 评论(0) 推荐(1)
摘要:C++疑难 1、bitset 用法 一、总结 一句话总结: C++的 bitset 在 bitset 头文件中,它是一种类似数组的结构,它的每一个元素只能是0或1,每个元素仅用1bit空间 二、C++ bitset 用法 博客对应课程的视频位置:1、bitset 用法https://www.fanr 阅读全文
posted @ 2020-05-30 12:31 范仁义 阅读(287) 评论(0) 推荐(0)
摘要:算法与数据结构 2、枚举 一、总结 一句话总结: 枚举法又称穷举法,它是根据题意,枚举所有可能状态,并用问题给定的条件来约束状态,检验哪些是需要的,哪些是不需要的。 1、枚举法的代码结构? 循环+判断语句,枚举几个变量就循环几次 设ai1—状态元素ai的最小值;aik—状态元素ai的最大值(1≤i≤ 阅读全文
posted @ 2020-05-29 11:54 范仁义 阅读(743) 评论(0) 推荐(0)
摘要:VSCode使用 3、VSCode如何调试C++代码 一、总结 一句话总结: a、终端->配置任务,生成task.json(负责调试) b、运行->启动调试,会生成launch.json(负责配置生成可执行文件),即可调试 1、VSCode调试C++代码的前置条件是什么? VSCode要调试C++代 阅读全文
posted @ 2020-05-29 04:49 范仁义 阅读(937) 评论(0) 推荐(0)
摘要:VSCode使用 1、VSCode如何运行C++代码 一、总结 一句话总结: 1、给vscode装上C/C++扩展,方便敲c++的代码 2、在电脑上装上C++的编译器g++和调试器gdb,并且将编译器和调试器添加的系统环境变量 1、如何理解VSCode可以敲各种编程代码? a、VSCode可以理解为 阅读全文
posted @ 2020-05-28 22:41 范仁义 阅读(10111) 评论(0) 推荐(1)
摘要:VSCode使用 2、VSCode解决乱码问题 一、总结 一句话总结: 直接将win10系统里的字符集改成utf-8即可 在windows机器里面,vscode的显示终端借助的是windows机器里的终端,显示乱码的原因一般都是字符集编码不匹配,所以将终端的编码改成utf-8就可以解决编码问题,方法 阅读全文
posted @ 2020-05-28 08:18 范仁义 阅读(936) 评论(0) 推荐(0)
摘要:算法与数据结构 1、课程介绍 一、总结 一句话总结: 算法学习的过程中,要深刻理解算法的思路,也要可以很轻松的将算法思路实现为代码。要多练多刷题。 二、知识结构 博客对应课程的视频位置:1、课程介绍https://www.fanrenyi.com/video/27/248 1)、算法 1、枚举2、递 阅读全文
posted @ 2020-05-27 07:54 范仁义 阅读(598) 评论(0) 推荐(0)
摘要:算法疑难(js实现) 11、字典树 一、总结 一句话总结: 本题字典树的的操作就是1、把单词插入到字典树里面去和2、在字典树中查找单词,都是递归,分析好思路,代码很好敲 function TrieNode(val){ this.val=val; this.children=[]; this.coun 阅读全文
posted @ 2020-05-25 19:30 范仁义 阅读(441) 评论(1) 推荐(0)
摘要:算法疑难(js实现) 10、二叉树的广度优先遍历 一、总结 一句话总结: 广度优先遍历就用队列来做,用队列的算法模板,弄清楚算法步骤,敲起来也比较简单 算法: 队列 队列解决问题的算法模板 while(队列不为空){ 1、将队列队首的元素出队(树的根节点或者子树的根节点) 2、把和出队元素相关的元素 阅读全文
posted @ 2020-05-24 04:21 范仁义 阅读(619) 评论(0) 推荐(0)
摘要:算法疑难(js实现) 9、二叉树的深度优先遍历 一、总结 一句话总结: 1、先序遍历:(根左右) 2、中序遍历:(左根右) 3、后序遍历:(左右根) 1 1、 2 先序遍历:(根左右) 3 a、访问根节点(得到节点的值) 4 b、递归的访问左子树 5 c、递归的访问右子树 6 7 2、 8 中序遍历 阅读全文
posted @ 2020-05-23 22:26 范仁义 阅读(612) 评论(0) 推荐(0)
摘要:算法疑难(js实现) 8、二叉树的创建(先序遍历) 一、总结 一句话总结: 先序遍历结果创建二叉树,只需要把先序遍历算法步骤中的访问改成创建 就是 根据先序遍历结果创建二叉树的算法,具体先创建根节点,再递归的创建左子树,再递归的创建右子树 2、算法步骤(根据一个树的先序遍历的结果,创建二叉树) (1 阅读全文
posted @ 2020-05-23 20:15 范仁义 阅读(746) 评论(0) 推荐(0)
摘要:算法疑难(js实现) 7、二叉树的创建(层次遍历) 一、总结 一句话总结: 层次遍历的问题一般用队列解决 function TreeNode(val){ this.val=val; this.left=null; this.right=null; } //根据二叉树的层次遍历的序列结果,创建二叉树 阅读全文
posted @ 2020-05-22 23:43 范仁义 阅读(699) 评论(0) 推荐(0)
摘要:算法疑难(js实现) 6、反转链表 一、总结 一句话总结: 1、遍历链表,把链表里面的每个节点的值都拿下来,存在数组里面 2、再次遍历链表,将数组里面的值倒序的赋值给每一个节点的val域就实现了链表的反转 //反转链表 function reverseList(head){ //1、遍历链表,把链表 阅读全文
posted @ 2020-05-19 22:58 范仁义 阅读(624) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 7 8 9 10 ··· 20 下一页