51dev.com IT技术开发者社区

51dev.com 技术开发者社区

2.4数组队列

2.4数组队列

(1)队列也是一种线性结构(2)相比数组,队列对应的操作是数组的子集(3)只允许在一端插入数据操作,在另一端进行删除数据操作,进行插入操作的一端称为队尾(入队列),进行删除操作的一端称为队头(出队列)(4)队列是一种先进先出的数据结构(FIFO) 此处我们先来学习一下顺序队列 ,...

2.3在LeetCode中使用我们自定义的类

2.3在LeetCode中使用我们自定义的类

在上一节中我们使用的是java提供了的类,这一小节中我们就来学习一下如何在LeetCode中使用我们自定义的类。其实很简单,我们只需把我们编写的自定义类,拷贝到LeetCode提供的类中,形成类中类,这样LeetCode就好自动调用我们编写的类啦。 ...

2.2栈的另一个应用:括号匹配

2.2栈的另一个应用:括号匹配

美网:https://leetcode.com/中文网 :https://leetcode-cn.com/英语不咋地,所以选择此处选择中文网来进行测试。(1)搜索20号题目(2)查看题目  (3)根据题目要求,首先在本地编辑器中完善20号题目的代码--使用java提供的...

2.1基于静态数组---栈的基本实现

2.1基于静态数组---栈的基本实现

1.栈的定义栈是一种“先进后出”的一种线性数据结构,有压栈出栈两种操作方式。如下图:2.栈的分类栈主要分为两类:静态栈动态栈【静态栈】静态栈的核心是数组,类似于一个连续内存的数组,我们只能操作其栈顶元素。【动态栈】静态栈的核心是数组,类似于一个连续内存的数组,我们只能操作其栈...

1.8均摊复杂度和防止复杂度的震荡

1.8均摊复杂度和防止复杂度的震荡

关于上一节中我们对添加操作的时间复杂度归结为O(n)是考虑了扩容操作(resize)在内的。就addLast(e)操作而言,时间复杂度为O(1),在考虑最坏情况下,每次添加均会触发扩容操作,需要移动n个元素,因此此时addLast操作的时间复杂度为O(n)。(1)addLast(e)均摊时间复杂度分...

1.7针对封装数组的简单复杂度分析

1.7针对封装数组的简单复杂度分析

完成了数组的封装之后我们还需对其进行复杂度分析:此处的复杂度分析主要是指时间复杂度分析,算法的时间复杂度反映了程序执行时间随输入规模增长而增长的量级,在很大程度上能很好反映出算法的优劣与否。1.简单概念在各种不同算法中,若算法中语句执行次数为一个常数,则时间复杂度为O(1),另外,在时间频度不相同时...

1.6封装数组之动态数组实现

1.6封装数组之动态数组实现

 前言:在此之前,我们封装的数组属于静态数组,也即数组空间固定长度,对于固定长度的数组当元素超过容量时会报数组空间不足。为了能更好的使用数组,我们来实现一个可以自动扩充容量的数组。实现思路:1.当数组容量达到事先定义值时创建一个空间是data数组两倍的newData数组(扩容);2.把da...

1.5封装数组之改进为泛型数组

1.5封装数组之改进为泛型数组

前言:通过上一节我们对我们需要封装的数组,进行了基本的增删改查的封装,但只局限于int类型的操作,为了能提供多种类型数组的操作,我们可以将其进一步封装为泛型数组。1.定义泛型数组相关概念(1)泛型数组让我们可以存放任何数据类型(2)存放的类型不可以是基本数据类型,只能是类对象基本类型:boolean...

1.4封装数组之包含、搜索和删除元素

1.4封装数组之包含、搜索和删除元素

前言:在上一小节中我们已经会了如何获取和如何修改数组中的元素,在本小节中我们将继续学习如何判断某个元素是否在数组中存在、查询出某个元素在数组中的位置、以及删除数组中元素等方法的编写。 1.查找数组中是否包含元素e,返回true或false//查找数组中是否包含元素epublicboolea...

1.3封装数组之实现在数组中查询元素和修改元素

1.3封装数组之实现在数组中查询元素和修改元素

前言:在上一小节中,我们已经对如何往数组中添加一个元素的方法进行了编写,此节中我们就如何查询出数组中元素与修改元素的方法进行编写。 在数组中,数据是存储在私有变量data中的,若我们想知道打印输出一些关于data中数据相关信息,我们可以使用toString()方法,在java中,该方法需要...

1.2封装数组之添加元素

1.2封装数组之添加元素

在上一小节中,我们对数组进行了一个基本的封装,该小节中,我们在上一次基础上,新增往数组添加元素的方法:1.向所有元素后添加一个元素思路:(1)先判断当前数组容量是否已满,未满则转入(2),否则抛出异常(2)在元素下标为size的位置插入新元素(3)维护我们的size值//向所有元素后添加元素publ...

1.1使用java数组,并开始封装我们自己的数组

1.1使用java数组,并开始封装我们自己的数组

今天感冒了,全身酸软无力,啥样不想做,就来学习吧,此节我们从初步使用java中提供的数组,然后分析相关情况,过渡到封装我们自己的数组。一.我们先来感受一下java提供的数组,以整型数组(int[])为例,相关代码如下: publicclassMain{publicstaticvoidmai...

解决在V2.0中子组件使用v-model接收来自父组件的值异常

解决在V2.0中子组件使用v-model接收来自父组件的值异常

当我们使用父组件向子组件传值,当子组件中是v-model使用该值时会报:[Vuewarn]:Avoidmutatingapropdirectlysincethevaluewillbeoverwritten原因为:在Vue2.x中移除了组件的props的双向绑定功能,如果需要双向绑定需要自己来实现。解...

Flutter实例一--底部规则导航栏制作

Flutter实例一--底部规则导航栏制作

先来看看制作效果:前置知识--StatefulWidget StatefulWidget具有可变状态(state)的窗口组件(widget)。使用时要根据变化状态,调整State值,能够快速初始化,在VSCode中直接使用快捷方式生成代码(直接在VSCode中输入stful后回车自动生成结...

使用uni-app开发微信小程序之登录模块

使用uni-app开发微信小程序之登录模块

从微信小程序官方发布的公告中我们可获知:小程序体验版、开发版调用wx.getUserInfo接口,将无法弹出授权询问框,默认调用失败,需使用<buttonopen-type="getUserInfo"></button>引导用户主动进行授权操作: 1.当用户未授权过...