03 2019 档案
摘要:在分析链表之前,我们先来对之前的动态数组、栈、队列总结一下: (1)底层依托于静态数组 (2)依靠resize解决固定容量问题 (3)是一种假的的动态数据结构 1.什么是链表 可以从以下两个部分来理解什么是链表 (1)最简单的动态数据结构,是一种真正的动态数据结构; (2)是一种数据的存储方式,数据
        阅读全文
                
摘要:在正式进行循环队列学习之前,我们先来看看在顺序队列中删除队首元素出现的问题 (1)设一个容量为capacity=8,size=5(a,b,c,d,e)的数组,左侧为队首、右侧为队尾。 (2)出队一个元素后,需整体往前移动一位 #出队 #2整体前移一位 关于该种操作方式我们很容易得出时间复杂度为O(n
        阅读全文
                
摘要:一.队列的概念 (1)队列也是一种线性结构 (2)相比数组,队列对应的操作是数组的子集 (3)只允许在一端插入数据操作,在另一端进行删除数据操作,进行插入操作的一端称为队尾(入队列),进行删除操作的一端称为队头(出队列) (4)队列是一种先进先出的数据结构(FIFO) 此处我们先来学习一下顺序队列 
        阅读全文
                
摘要:在上一节中我们使用的是java提供了的类,这一小节中我们就来学习一下如何在LeetCode中使用我们自定义的类。 其实很简单,我们只需把我们编写的自定义类,拷贝到LeetCode提供的类中,形成类中类,这样LeetCode就好自动调用我们编写的类啦。
        阅读全文
                
摘要:1、LeetCode官网 美网:https://leetcode.com/ 中文网 :https://leetcode-cn.com/ 英语不咋地,所以选择此处选择中文网来进行测试。 2、LeetCode中获取第20号题目 (1)搜索20号题目 (2)查看题目 (3)根据题目要求,首先在本地编辑器中
        阅读全文
                
摘要:1.栈的定义 栈是一种“先进后出”的一种线性数据结构,有压栈出栈两种操作方式。如下图: 2.栈的分类 栈主要分为两类: 静态栈 动态栈 【静态栈】 静态栈的核心是数组,类似于一个连续内存的数组,我们只能操作其栈顶元素。 【动态栈】 静态栈的核心是数组,类似于一个连续内存的数组,我们只能操作其栈顶节点
        阅读全文
                
摘要:关于上一节中我们对添加操作的时间复杂度归结为O(n)是考虑了扩容操作(resize)在内的。就addLast(e)操作而言,时间复杂度为O(1),在考虑最坏情况下,每次添加均会触发扩容操作,需要移动n个元素,因此此时addLast操作的时间复杂度为O(n)。 (1)addLast(e)均摊时间复杂度
        阅读全文
                
摘要:完成了数组的封装之后我们还需对其进行复杂度分析: 此处的复杂度分析主要是指时间复杂度分析,算法的时间复杂度反映了程序执行时间随输入规模增长而增长的量级,在很大程度上能很好反映出算法的优劣与否。 1.简单概念 在各种不同算法中,若算法中语句执行次数为一个常数,则时间复杂度为O(1),另外,在时间频度不
        阅读全文
                
摘要:前言:在此之前,我们封装的数组属于静态数组,也即数组空间固定长度,对于固定长度的数组当元素超过容量时会报数组空间不足。为了能更好的使用数组,我们来实现一个可以自动扩充容量的数组。 实现思路: 1.当数组容量达到事先定义值时创建一个空间是data数组两倍的newData数组(扩容); 2.把data数
        阅读全文
                
摘要:前言:通过上一节我们对我们需要封装的数组,进行了基本的增删改查的封装,但只局限于int类型的操作,为了能提供多种类型数组的操作,我们可以将其进一步封装为泛型数组。 1.定义泛型数组相关概念 (1)泛型数组让我们可以存放任何数据类型 (2)存放的类型不可以是基本数据类型,只能是类对象 基本类型: (3
        阅读全文
                
摘要:前言:在上一小节中我们已经会了如何获取和如何修改数组中的元素,在本小节中我们将继续学习如何判断某个元素是否在数组中存在、查询出某个元素在数组中的位置、以及删除数组中元素等方法的编写。 1.查找数组中是否包含元素e,返回true或false 有时候在查询过程中,我们不仅想知道是否包含该指定元素,还想是
        阅读全文
                
摘要:前言:在上一小节中,我们已经对如何往数组中添加一个元素的方法进行了编写,此节中我们就如何查询出数组中元素与修改元素的方法进行编写。 在数组中,数据是存储在私有变量data中的,若我们想知道打印输出一些关于data中数据相关信息,我们可以使用toString()方法,在java中,该方法需要每个类自定
        阅读全文
                
摘要:在上一小节中,我们对数组进行了一个基本的封装,该小节中,我们在上一次基础上,新增往数组添加元素的方法: 1.向所有元素后添加一个元素 思路: (1)先判断当前数组容量是否已满,未满则转入(2),否则抛出异常 (2)在元素下标为size的位置插入新元素 (3)维护我们的size值 2.在指定index
        阅读全文
                
摘要:今天感冒了,全身酸软无力,啥样不想做,就来学习吧,此节我们从初步使用java中提供的数组,然后分析相关情况,过渡到封装我们自己的数组。 一.我们先来感受一下java提供的数组,以整型数组(int[])为例,相关代码如下: 1.对于数组最大优点:快速查询。例如我想知道scores下标为1数值是多少,我
        阅读全文
                
摘要:当我们使用父组件向子组件传值,当子组件中是v-model使用该值时会报:[Vue warn]: Avoid mutating a prop directly since the value will be overwritten 原因为:在Vue 2.x中移除了组件的props的双向绑定功能,如果需
        阅读全文
                
摘要:先来看看制作效果: 前置知识--StatefulWidget StatefulWidget具有可变状态(state)的窗口组件(widget)。使用时要根据变化状态,调整State值, 能够快速初始化,在VSCode中直接使用快捷方式生成代码(直接在VSCode中输入stful后回车自动生成结构),
        阅读全文
                
摘要:从微信小程序官方发布的公告中我们可获知:小程序体验版、开发版调用 wx.getUserInfo 接口,将无法弹出授权询问框,默认调用失败,需使用 <button open-type="getUserInfo"></button> 引导用户主动进行授权操作: 1.当用户未授权过,调用该接口将直接报错 
        阅读全文
                
 
                    
                
 浙公网安备 33010602011771号
浙公网安备 33010602011771号