自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 leetcode算法-递归

递归函数直接或间接地调用自己。生活中的例子从前有座山的故事。从前有座山,山里有座庙,庙里有个老和尚和小和尚,老和尚在给小和尚讲故事:从前有座山,山里有座庙,庙里有个老和尚和小和尚,老和尚在给小和尚讲故事:。。。4个要素接受的参数返回值递归终止条件递归拆解:如何递归到下一层斐波拉契数列0,1,1,2,3,5,8…f(n) = f(n - 1) + f(n - 2),其中f(0) = 0,f(1) = 1recursion(int n) { if(n < 2) return

2021-03-22 09:36:31 178

原创 leetcode算法-滑动窗口

滑动窗口目的:减少while循环的次数目标题型:数组定长问题,比如求数组中k个数为一组最大的和/最小的和例子:给定一个数组,数组中三个数为一组,求最大和。常规方法:将指针指向数组的第一位,求该元素和后两个元素的和;然后移动指针到第二位,求和;直到数组的最后三位求和为止。这样做每次都是三个数相加,会有重复的相加过程,比如第一轮和第二轮求和都要将第二位和第三位数相加。滑动窗口法:第一轮求前三位数的和,然后第二轮将之前的和减去第一位数,再加上第四位数,以此类推,每轮只需要减去一个数,再加上一个数。

2021-03-18 21:59:06 188

原创 在线教育项目第十天

一、微服务概念 本项目中父工程中的不同模块占用不同的端口号 微服务是一种架构风格/方式 一个项目拆分为多个服务,每个服务独立运行,每个服务占用独立进程,可以将每个服务单独部署在不同的服务器上优点 程序扩展方便,部署方便,代码量减少,容易定位问题 每个模块可以使用不得存储方式,有的使用redis,有的使用MySQL 每个模块可以使用不同的语言开发如果系统提供的业务是偏底层的,比如操作系统内核、存储系统、网络系统、数据库系统等,功能之间紧密配合,不适合使用微

2021-03-18 19:53:02 187

原创 在线教育项目第九天

一、课程列表与讲师列表类似有查询表单和分页条每条数据之后有编辑课程基本信息、编辑课程大纲、删除按钮后端1、创建CourseQuery类,用于封装多条件组合查询课程信息的条件数据public class CourseQuery { @ApiModelProperty(value = "课程标题,模糊查询") private String title; @ApiModelProperty(value = "状态 Draft未发布 Normal已发布") priva

2021-03-18 19:33:31 712 1

原创 阿里云视频点播上传视频踩的坑

问题使用阿里云视频点播中的本地流方法上传视频时,回调失败,控制台打印ErrorMessage = sun/misc/BASE64Encoder解决查了网上的方法,发现是JDK1.8以上的版本已经不使用上面这个包了?可以直接将JDK版本换成1.8就不会出现这个问题或者要使用JDK1.8以上版本的话,依赖版本严格参考阿里云的文档,如下: <dependency> <groupId>com.aliyun</groupId> &l

2021-03-16 15:38:16 667

原创 在线教育项目第八天

一、添加项目基本信息完善课程添加的简介整合文本编辑器1、准备工作复制富文本编辑器组件到项目中 复制Tinymce到components,复制tinymce4.7.5到static编辑build/webpack.dev.conf.js,加上 new HtmlWebpackPlugin({ ..., templateParameters: { BASE_URL: config.dev.assetsPublicPath + config.dev.a

2021-03-15 18:07:26 5385

原创 leetcode算法-二分查找法

二分查找法例子:猜数字猜100以内的一个数字,先猜50,大了就锁定范围1-49,小了就锁定范围51-100。以此类推,每次猜中间的数来锁定范围,直到猜出数字。例子:数组搜索元素给定一个有序数组,搜索数组重是否存在某个元素。如果使用遍历,时间复杂度是O(N)。如果使用二分查找发,时间复杂度是O(log2Nlog_2Nlog2​N),因为每次排除一半的元素。特点查找的元素必须有序。二分查找法相关leetcodeNo.704 二分查找思路:先判断数组是否为空,是则返回-1。然后定义左指针和右指针

2021-03-12 20:25:23 391

原创 leetcode常用算法-双指针

双指针普通双指针:两个指针往一个方向移动对撞双指针:两个指针面对面移动快慢双指针例子普通双指针i=0,j从1开始遍历,判断两数之和是否为12。然后i=1,j从2开始遍历判断和是否为12,以此类推,直到找到两数之和为12为止。这里i和j往同一个方向移动,都要遍历数组,因此时间复杂度为O(N2N^2N2)对撞双指针i=0,j=4开始遍历,此时和为10<12,说明需要更大的数相加才可能使得和为12,而j已经指向了数组中最大的数,因为这是一个有序数组,因此i需要向右移动才可能使得和更大。i=

2021-03-12 17:41:55 147

原创 在线教育项目第七天

一、添加课程分类前端1、添加课程分类的路由/router/index.js { path: '/subject', component: Layout,//布局 redirect: '/subject/list',//访问subject默认访问list name: '课程分类管理', meta: { title: '课程分类管理', icon: 'example' }, children: [ {

2021-03-12 16:00:22 605

原创 在线教育项目第六天

一、添加讲师实现头像上传准备工作1、使用阿里云对象存储oss打开阿里云,注册账号,最好使用支付宝,方便实名认证登录账号充值一两毛,防止欠费无法使用进入产品-对象存储oss,点击立即开通,开通后点击管理控制台小于1GB不收费2、管理控制台的使用创建存储空间Bucket,类似于文件夹 文件被频繁访问使用标准存储,归档存储无法被访问 同城冗余存储会进行备份,需要收费 版本控制针对数据的覆盖和删除操作将会以历史版本的形式保存下来。 读写控制 选择公共读点击文件管理

2021-03-12 15:33:45 402

原创 Java图基本知识及数据结构回顾

图Graph与树不同,图里面的节点与节点之间可能不止一条路径。图分为点和边,点称为顶点,相邻的点称为邻居节点。度:顶点连着的边的条数无向图:边没有方向有向图:边有方向入度:有几条边指向该节点初度:有几条边从该节点指向其它节点权重图:边上有权重,一般用于求解最短路径,    常用方法有贝尔曼-福特算法Bellman-Ford和迪克斯特拉算法Dijkstra数据结构回顾数组读多写少访问和更新的时间复杂度是O(1)搜索的时间复杂度是O(N)插入和删除的时间复杂度是O(N)链表写多

2021-03-11 17:55:24 134

原创 Java堆常用操作及相关leetcode算法题

堆Heap堆是一种完全二叉树且满足以下条件:每个节点都大于等于孩子节点,称为最大堆,堆顶元素最大每个节点都小于等于孩子节点,称为最小堆,堆顶元素最小判断数据结构的好坏要对比四个操作1、访问Access堆没有索引的概念,不存在访问的操作。2、搜索Search一般只搜索堆顶元素,时间复杂度为O(1)。如果要搜索任意元素,时间复杂度为O(N)。3、插入Insert插入一个元素,先插入在二叉树的下一个位置,然后比较该元素和父节点,如果大于父节点,进行交换,直到小于父节点为止。因为只需要和父节点

2021-03-11 16:28:46 207

原创 JavaTree常用操作及相关leetcode算法题

Tree树描述的是节点之间的父子关系节点:树中的每一个元素根节点:树中最上层的唯一的节点叶子节点:没有孩子的节点高度:从最底层算起,从0开始深度:从最高层算起,从0开始层:从最高层算起,从1开始二叉树普通二叉树:每个节点最多两个孩子满二叉树:除了叶子节点,每个节点都是两个孩子,并且所有叶子节点都在一层。完全二叉树:从根节点起,从上到下,从左到右,依次填满节点形成的二叉树满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树遍历根据根节点的访问顺序分为前中后,左右子树都是依次遍历的。

2021-03-11 11:08:40 392

原创 JavaSet集合常用操作及相关leetcode算法题

Set特点:1、无序,元素的顺序不是按照插入的顺序,也不是根据大小来排序。2、不重复。插入元素时先比较哈希值,不同则插入,相同再调用equals方法比较,不同则是哈希冲突,可以通过链表法或再哈希法等方法解决,否则插入失败。主要作用:1、判断某个元素是否存在2、判断元素是否重复。将一组数插入集合,比较插入前的元素个数和集合的长度。leetcode大部分使用的是HashSet,偶尔会用到TreeSet。HashSet插入元素时,先通过哈希函数得到哈希值,判断哈希值在哈希表中对应位置是否已经存在

2021-03-11 10:14:54 236

原创 Java哈希表常用操作及相关leetcode算法题

哈希表以键值对的形式存储存储:将key通过哈希函数映射到一个内存地址,然后将value存入该内存地址获取:通过key传入哈希函数得到内存地址,将value取出来哈希冲突:不同的key传入哈希函数得到的内存地址一样解决:以链表的形式存储统一内存地址的value,要获取值时先定位到内存地址,再遍历链表判断数据结构的好坏要对比四个操作1、访问Access哈希表没有索引的概念,不存在访问的操作。2、搜索Search时间复杂度是O(1)。将key传入哈希函数得到内存地址,取出value。如果有哈

2021-03-10 17:43:21 268

原创 Java栈常用操作及相关leetcode算法题

栈先进后出,后进先出。只有一个口。例子:浏览器的页面前进后退操作。判断数据结构的好坏要对比四个操作1、访问Access时间复杂度是O(1),只能访问栈顶的元素。2、搜索Search时间复杂度是O(N)。需要遍历才能找到对应的元素。3、插入Insert时间复杂度是O(1)。只能在栈顶插入元素。4、删除Delete时间复杂度为O(1)。只能在栈顶删除元素。Java链表常用操作1、创建栈Stack<Integer> stack = new Stack<>();

2021-03-09 17:07:29 445

原创 Java队列常用操作及相关leetcode算法题

单端队列leetcode中大部分是使用单端队列,一个口进,一个口出底层使用链表实现判断数据结构的好坏要对比四个操作1、访问Access时间复杂度是O(N),需要遍历才能找到要访问的元素。2、搜索Search时间复杂度是O(N)。和访问一样,也是需要遍历才能找到对应的元素。3、插入Insert时间复杂度是O(1)。只能在队尾插入元素。4、删除Delete时间复杂度为O(1)。只能在队头删除元素。Java链表常用操作1、创建队列Queue<Integer> queue =

2021-03-09 14:56:29 222

原创 Java链表常用操作及相关leetcode算法题

单链表leetcode中使用单链表就足够了。判断数组结构的好坏要对比四个操作1、访问Access时间复杂度是O(N),因为链表的存储位置不是连续的,需要遍历才能找到要访问的元素。2、搜索Search时间复杂度是O(N)。和访问一样,也是需要遍历才能找到对应的元素。3、插入Insert时间复杂度是O(1)。在位置2和3之间插入元素5,只需要将2的next指针指向5,将5的next指针指向3即可。4、删除Delete时间复杂度为O(1)。删除位置3,只需要将2的指针指向4即可。Java链表

2021-03-09 11:41:23 162

原创 Java数组常用操作及相关leetcode算法题

1、创建已知数组元素int [] array = {1, 2, 3}int [] array = new int[]{1, 2, 3};已知数组长度int [] array = new int[3];使用ArrayList,不用确定长度和元素AraayList<Integer>list = new ArrayList<>();2、添加元素前三种创建数组的方法要添加元素,需要新建一个长度更长的数组,这里使用ArrayList的方法默认在尾部添加元素list.add

2021-03-08 14:45:46 290

原创 在线教育项目第五天

讲师管理模块前端开发使用vue-admin-template框架,其基于vue和element-ui文章目录讲师管理模块前端开发1、登录功能改造将登录请求的地址改为本地地址开发接口修改前端src/api/login.js中的请求url注意前端修改配置文件需要重启服务器出现Network Error说明代码有问题细节2、前端框架使用过程添加路由在api中创建文件在views中写vue页面 .vue3、讲师列表添加路由创建路由对应的页面在api文件夹中定义请求接口的文件teacher.js 定义要访问的地

2021-03-06 21:41:42 219

原创 使用CrossOrigin注解解决跨域问题无效的坑

在做在线教育项目前端开发部分条件的查询功能时,一点击查询按钮就出现跨域错误原因:是因为在前端的查询表单中调用vue中methods里定义的方法时没有加上括号加上后就没有跨域问题了这是methods里定义的方法...

2021-03-06 15:15:26 1164

原创 在线教育项目第四天

一、axios概念独立于vue的项目,但常和vue一起使用,实现ajax操作应用场景前端发送ajax请求后端接口,后端接口返回数据用于前端展示使用创建html页面,引入js文件,vue和axios将json文件中的数据显示到页面上<div id="app"> <table border="1" cellspacing="0" cellpadding="0"> <tr v-for="user, index in userList"&gt

2021-03-05 19:15:22 115

原创 在线教育项目第三天

前端开发一、准备工作安装vscode网址:https://code.visualstudio.com/Download推荐System版本 因为User版本是根据计算机用户安装的,换一个用户就使用不了了官网下载很慢,可以将下载网址中的az764295.vo.msecnd.net换成vscode.cdn.azure.cn安装的附加任务: ①将“通过code 打开“操作添加到windows资源管理器文件上下文菜单 ②将“通过code 打开”操作添加到windows资源管理器目录上下文

2021-03-03 21:50:56 319 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除