日撸 Java 三百行day40

news2024/11/25 18:40:17

文章目录

  • day40 小结
    • 1.回顾
    • 2.​​面向对象思想
    • 3.收获
    • 4.联系与区别
    • 5.不足

day40 小结

1.回顾

这10天主要从图的存储结构和图的应用方面进行了学习,在实现不同的存储结构都借助了矩阵来实现。首先,再回过去看这些代码,平时自己也写过许多业务逻辑代码,相比于实际问题的开发与写这些代码,区别在于这些算法更在于去解决 一类问题,在遇到这类问题可以用这个思想去解决,更像是提供的一种方案。其次,在图的应用中,或者在解决一些其他问题中,能够把问题简化为图形化界面的,去思考问题我觉得比直接看问题去思考更容易也更高效。
在这里插入图片描述

2.​​面向对象思想

在这几天学习中,在构建不同存储结构的图时,都需要借助一个矩阵,而矩阵我们已经抽象为一个对象,在这个对象中包含两部分,一部分成员变量和方法。我们在图中需要用到矩阵只需要new一个对象即可获取这个矩阵对象中相应的变量和方法(这里也有访问权限控制的问题)同理我们的队列对象,栈对象,我们的图也是一个对象。在java中真的是万事皆可对象。面向对象相比于面向过程他更有利于模块化,调用更方便。其实在学习中是深有感触的;数据的安全性有保障(如我们最常见的就是privite,public,protected等访问控制符);

3.收获

从开始跟着敲这个代码,到现在,一些解决问题的思维方式(问题转换)我觉得是挺受益匪浅的。如:

  • 1.day26 二叉树的后序遍历 (结合先序遍历和栈的特点将问题转换为简单问题求解)
  • 2.day35 根据着色问题,把排列问题转换为解空间树,利用深度优先遍历思想求得解
  • 3.day39 关键路径问题 结合拓扑排序(正向和反向)进而去求解关键路径问题
  • 4.图用一个二维数组存储(矩阵),判断两节点是否直连,真的就很容易,一行代码就解决了。

其中还有一些其他的小细节,就如初始化值如何初始化等。

4.联系与区别

在day38中,其实Dijkstra 算法和Prim 算法之间解决的问题是不一样的,但是他们在代码实现上的思路却极为相似,差别就在比较距离时是累加还是只看当前节点出度个边的距离。在关键路径代码实现时,也去借助了Dijkstra 算法思想,但是发现并行不通。万事万物皆相互联系也相互区别。如果在不查阅其他资料的前提下,我应该做不到会把他们联系起来,但如果有些问题的求解方式相似,那么解决问题不是就更快了。所以感觉还是自己知识储备量不够

5.不足

其实在其中的一些算法可以解决一类问题,例如深度优先算法有回溯的思想,在m着色问题可以借助这个回溯思想去解决,Dijkstra算法可以解决单源最短路径,prim算法的最小生成树等,在遇到相似问题能否及时想到这些基础算法?在写代码的过程,我也一直在想,图以及图相关的这些算法思想主要应用在什么地方呢?查阅了一些资料,发现用到的地方太多了,所以会觉得地基牢很重要。

目前只能写出那么多了~想到再写吧

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/471901.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

R语言的贝叶斯时空数据模型实践技术应用

时间-空间数据(以下简称“时空数据”)是最重要的观测数据形式之一,很多科学研究的数据都以时空数据的形式得以呈现,而科学研究目的可以归结为挖掘时空数据中的规律。另一方面,贝叶斯统计学作为与传统统计学…

SystemView的使用教程(基于FreeRTOS的配置)

目录 1.添加文件 2.配置修改 3.连接运行 4.常见问题 SystemView 是一个可以在线调试嵌入式系统的工具,它可以分析有哪些中断、任务执行了,以及这些中断、任务执行的先后关系。还可以查看一些内核对象持有和释放的时间点,比如信号量、互斥…

10款比较好用的网页设计工具

网页设计软件的轻量化和在线协作已成为当前网页制作软件的发展趋势。网页设计并不容易,易于使用的网页UI设计软件更难找到。随着网络的快速发展,网站迅速崛起,网页设计也很受欢迎。网页设计软件即时设计是一种在线协作设计工具,深…

Github为开发者打造的AI代码编写建议插件

仓库: GitHub - github/copilot.vim: Neovim plugin for GitHub Copilot 特性: GitHub Copilot Your AI pair programmer GitHub 目录 代码建议 付费使用 专注于解决问题 支持常用IDE ​在不熟悉的领域自信地编写代码 GitHub Copilot使用Open…

python smtplib.SMTP_SS发邮件提示550, b‘The “From“ header is missing or invalid

发现网站不能注册新用户,报错提示:(550, b’The “From” header is missing or invalid. Please follow RFC5322, RFC2047, RFC822 standard protocol. https://service.mail.qq.com/detail/124/995.) 定位是注册时不能发邮件验证导致。QQ邮箱的From格式…

使用 Luckysheet 可实现 Web 的 Excel

一、写在前面 工作中会遇到excel的导入和导出,换个角度看,假如有个 web 版本的excel ,且能上传现有的,修改编辑后再下载也是个不错的方案。 Luckysheet 是实现 web版Excel的一个优秀的框架。 Luckysheet ,一款纯前端类…

使用nvm在Windows上管理Node版本

1.卸载Windows上安装的Node.js 首先需要卸载我们现在安装的Node.js,控制面板->卸载程序->卸载Node.js 2.下载安装配置nvm 1.下载 GitHub下载链接:https://github.com/coreybutler/nvm-windows/releases 需要下载黄色方框圈中的nvm-setup.exe或者nvm-setup.zip…

数据结构学习分享之复杂度讲解

数据结构第一课 1. 前言2. 数据结构前言2.1 什么是数据结构和算法?2.2 数据结构和算法的重要性2.3 如何学好数据结构和算法?2.4 一些文章和书籍 3. 算法效率3.1 算法的复杂度3.2 复杂度在面试中的考察 4. 时间复杂度4.1 时间复杂度概念4.2 大O的渐近表示法4.3 判断时间复杂度…

从大厂到创业公司,管理上需要怎样转变?

你好,我是舒超。 我职业生涯过去十年的上半段在腾讯负责微博微群、消息流广告、视频评论等社交型的业务系统,下半段在美团基础架构负责云原生基础设施的演进工作,现在星汉未来担任CTO,负责公司产研推进工作。加入星汉未来的时间点…

策略模式——时势造英雄

● 策略模式介绍 在软件开发中常常遇到这样的情况:实现某一个功能可以有多种算法或者策略,我们根据实际情况选择不同的算法或者策略来完成该功能。例如,排序算法,可以使用插入排序、归并排序、冒泡排序。 针对这种情况&#xff0c…

AppWeb 身份验证绕过漏洞 (CVE-2018-8715)

当前漏洞环境部署在vulhub,当前验证环境为vulhub靶场(所有实验均为虚拟环境) 实验环境:攻击机----kali 靶机:centos7 1、进入靶场,启动环境 2、访问AppWeb控制台:http://your-ip:8080 使用用户名、密码adm…

全景丨0基础学习VR全景制作,平台篇第14章:热点功能-漫游

大家好,欢迎观看蛙色VR官方——后台使用系列课程! 后台功能位置示意 热点,指在全景作品中添加各种类型图标的按钮,引导用户通过按钮产生更多的交互,增加用户的多元化体验。 漫游热点,即场景切换热点&#…

Jetpack Navigation 源码(一)

当然要先看官网文档:https://developer.android.google.cn/guide/navigation/navigation-getting-started?hlzh-cn 先从FragmentContainerView 开始 首页它是一个View image.png 注意它的name属性 image.png name属性的fragment 是怎么添加到这个View的(当然fragme…

关于Maven,你真的了解它吗?

编译软件:IntelliJ IDEA 2019.2.4 x64 操作系统:win10 x64 位 家庭版 Maven版本:apache-maven-3.6.3 目录 一. Maven有哪些核心概念?1.1 Maven中的POM1.2 Maven约定的目录结构1.3 Maven生命周期1.4 Maven的插件和目标1.5 Maven中的…

【面试】MySQL事务的12连问

文章目录 前言1. 什么是数据库事务?2. 事务的四大特性3. 事务的隔离级别有哪些?MySQL的默认隔离级别是什么?4. Mysql为什么选择RR作为默认隔离级别?5. 很多大厂为什么选择RC数据库隔离级别?6. 并发场景,数据…

经典回归算法

回归的概念 回归方程: 写成矩阵: 核心问题,构建预测函数z来映射特征矩阵x和标签y的线性关系 预测的目标值,有连续值也有离散值 连续值,就直接预测输出就行离散值,需要在输出端加一个变换函数例如。Si…

入参校验产品化 schema

与规则引擎不同,规则面向技术, 传入data, 返回 所有异常字段和原因. 面向技术, 先有对象,再有规则, 如何通过交互来编写schema是个难题? 和json-schema区别: 思路上就是反过来的, 面相产品, schema可视化编辑器, 是面向结构设计. 现有模型,才有数据, 才可以编程. 基于配置…

Docker安装运行Nginx容器(纯步骤)

Docker安装Nginx容器并运行 本文章只有步骤,没有原理解释,只做平时学习提示。提前说明:由于nginx里的配置文件比较多,所以本文章不对此配置文件解释而且会有一些小问题,这个你酌情操作,但不影响你nginx容器…

化工厂5G+北斗RTK室外人员定位系统解决方案

化工厂的安全管理工作非常重要,为了确保员工的安全和提高生产效率,建议引入人员定位技术。下面给大家介绍化工厂5G北斗RTK室外人员定位系统解决方案。关于化工厂室内人员定位方案,可以参考我之前写的文章:化工厂5G蓝牙LoRa室内人员…

声网 Token 鉴权机制,以及常见的问题

Token鉴权是什么? Token也称为动态密钥,是在加入频道时用于校验用户权限的一组字符串;鉴权是指在用户访问你的系统前,对其进行身份校验。用户在使用声网服务,如加入音视频通话或登录信令系统时,声网会使用…