当前位置: 首页 > news >正文

数据结构与算法——左程云09

【前言】:

后续有时间会将纸质笔记中的过程图更新上来。

【1】:

【Dijkstra使用堆加速】:

  • 《@@119_1》

【这个方式还可以加速】:

//可以通过小根堆的方式来拿值。

//系统堆所不具备:

​ 修改某一处的值 , 并且让这个堆再重新调整结构。(系统堆是做不到的)

​ //你不能具体到修改堆结构中的某处值,并让这个堆重新调整结构。

  • 改堆的能力是我们一定要具备的!!!

有些题目只能自己改堆,这部分题目会在中、高级班里讲解。

【2】:左神自述

【左神的自述】:

其实我本人的实力并没有多强。完全是因为讲课这个东西好弄,我没有参加过比赛,因为我开始搞算法已经是去芝加哥大学读书的时候才开始搞算法的,当时完全是为了找工作。刷到今天大概有七、八年了,并没有拿到牌子,因为本科的时候,没有搞过这个,研究生的时候才开始搞这个。

【3】:暴力递归

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1DhpZsRn-1663994465328)(/Users/yuguangyao/Library/Application Support/typora-user-images/image-20220915173041788.png)]

【最好的启发点】:

怎么去尝试一个问题。

​ //只要尝试方法试出来,改动态规划就是一步到位的事情。

尝试方法就是种子——有了种子之后,如何去优化呢???

【术语无必要】:

暴力递归完全是依靠天赋的,怎么尝试才能把一个东西给尝试出来,这个东西一定是靠天赋的。

  • 一个东西怎么试呢?

//如何尝试一个问题——这个的确需要天赋;

//只要尝试方法试出来了,改动态规划就是一步到位的事。——这个尝试方法又叫做种子,有了种子之后,如何去优化呢?

【其它别名】:

其它的别名——回溯、分支限界;

//彻彻底底穷举的方式来将一个答案试出来的方式就叫做——暴力递归;

//国内喜欢起名词,面对新手希望通过一个个名词来怼死~

【4】:训练题

【汉诺塔】:

  • 打印N层汉诺塔从最左边移动到最右边的全部过程!!!

  • 《@@120_2》

//尝试的时候不要想——全局到底咋回事儿。

?全局到底如何?

【字符串全部子序列】:

  • 打印一个字符串的全部子序列,包括空字符串。

【字符串的全部排列】:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VOSjJiTf-1663994465329)(/Users/yuguangyao/Library/Application Support/typora-user-images/image-20220916103434924.png)]

【方式一】:

//每个位置从能选的集合中进行随机选择。

第一个位置——N种可能性。

第二个位置——(N-1)种可能性。

//以此类推。

  • 《@@123_4》

【1:17:36】:

此处些许内容没听太明白!!!

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QPNZQOIi-1663994465330)(/Users/yuguangyao/Library/Application Support/typora-user-images/image-20220916114326344.png)]

【放开】:

不重复的全排列~~~!!!

【不放开】:

所有的全排列~~~!!!

【分支限界】:

走分支的时候就杀死不可能的分支,会得到更快的方法。——( 1:18:06 )

​ //指标上没有优化,但是常数项上有优化。

此即——分支限界( 比最后洗数据的方式要强 )。

【先后手】:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fzpZAblB-1663994465330)(/Users/yuguangyao/Library/Application Support/typora-user-images/image-20220916124648281.png)]

【回顾之前的试法】:

之前都是从左往右,每个位置的i位置做一个决定;

  • 《@@123_5》

//试法没有办法教你,每一道题它的试法都是不一样的。

【 逆序栈 】:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v6Ozj7nr-1663994465331)(/Users/yuguangyao/Library/Application Support/typora-user-images/image-20220916162718506.png)]

  • 《@@125_6》

//递归函数其实就是——系统栈;

//其实就是在问你——系统栈这种结构,如何让其逆序?

【 数字字符串 】:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n1DI2auO-1663994465331)(/Users/yuguangyao/Library/Application Support/typora-user-images/image-20220917195807165.png)]

  • 《@@127_7》

【 袋子最多价值 】:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-las96A26-1663994465332)(/Users/yuguangyao/Library/Application Support/typora-user-images/image-20220918180400161.png)]

//从左往右,要或不要全部展开~( 1号货要或不要展开 , 2号货要或不要展开 )——> 求出全部的可能看一看?

//重量永远不要超过bag。

【可变参数形式】:

可变参数形式最简单(一个值就优于一个链表),可变参数数量最少的试法为优。

可变参数形式最简单,固定参数不管。

【改动态规划的基础】:

​ 后面改动态规划的基础,形式越简单,数量越少,你越容易改动态规划,改动态规划的成败完全决定于你的试法。

  • 试法是自然智慧!

试法一旦搞定就什么都有了,动态规划是根据试法来的。

【N皇后】:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XaELIlgv-1663994465332)(/Users/yuguangyao/Library/Application Support/typora-user-images/image-20220918183302830.png)]

相关文章:

  • C++异常
  • 【ASM】字节码操作 如何使用 visitFrame
  • 【Spring Boot 集成应用】 OAUTH2统一认证单点登录中的各种模式说明
  • 数据链路层的检错技术——循环冗余校验CRC(Cyclic Redundancy Check)
  • 【C++】IO流
  • Pytorch理解
  • 区块链中的隐私保护技术
  • postgres 源码解析 元组插入流程 Heap_Insert
  • 什么是数字化转型? 怎样算是转型?
  • js单行代码------日期和时间
  • 公众号网课查题接口
  • 科莱瑞迪IPO被终止:曾拟募资3.4亿 詹德仁夫妇控制63%股权
  • OpenCV入门(十三):常用图形绘制
  • 项目实战:QuickHit
  • 【听听iecne怎么说】C++技术的发展趋势, MFC过时了吗?QT呢?
  • 收藏网友的 源程序下载网
  • (三)从jvm层面了解线程的启动和停止
  • 10个最佳ES6特性 ES7与ES8的特性
  • android 一些 utils
  • axios 和 cookie 的那些事
  • 第十八天-企业应用架构模式-基本模式
  • 读懂package.json -- 依赖管理
  • 基于HAProxy的高性能缓存服务器nuster
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 排序算法学习笔记
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 手机端车牌号码键盘的vue组件
  • 探索 JS 中的模块化
  • 译自由幺半群
  • ​MySQL主从复制一致性检测
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • ​油烟净化器电源安全,保障健康餐饮生活
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #define用法
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • (3)STL算法之搜索
  • (C++)八皇后问题
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (九)信息融合方式简介
  • (论文阅读11/100)Fast R-CNN
  • (转)linux 命令大全
  • (转)程序员疫苗:代码注入
  • .NET Framework .NET Core与 .NET 的区别
  • .NetCore 如何动态路由
  • .NET与java的MVC模式(2):struts2核心工作流程与原理
  • ?.的用法
  • @Import注解详解
  • @media screen 针对不同移动设备
  • [ Linux ] Linux信号概述 信号的产生
  • [ 数据结构 - C++] AVL树原理及实现
  • []C/C++读取串口接收到的数据程序
  • [145] 二叉树的后序遍历 js
  • [20180312]进程管理其中的SQL Server进程占用内存远远大于SQL server内部统计出来的内存...
  • [20190113]四校联考
  • [202209]mysql8.0 双主集群搭建 亲测可用