RED

链表:单链表、双链表和循环链表

此生再无相见时 提交于 2020-08-11 13:40:34
一、什么是链表 通过「指针」串联起来的内存空间。如图下链表概念图,有 3 个字符串存储在一个链表中,每个数据都有一个指针指向下一个数据的内存地址。 二、优缺点 优点:插入和删除高效,时间复杂度为 O(1)。 缺点:查询低效,时间复杂度为 O(n)。 插入数据和删除数据操作都是改变一下指针方向便可。 查找数据低效是因为要从第 1 个数据开始顺着指针寻找。比如说要查询「Red」,那么就得从「Blue」开始,通过指针指向的内存地址找到「Yellow」,然后才能找到「Red」。 三、3 种常用链表结构 单链表:头结点是记录链表的基地址,尾结点是指向 NULL。 双链表:两个空间存储前后结点地址,能双向遍历。但因为指针的增加导致存储空间增加,增删操作需要改变更多指针的指向。 循环链表:尾结点指向头结点,适合处理环形结构的数据。 四、例子 LeetCode 上的一个例子: 删除链表中的节点 。假设我们要删除「Yellow」这个结点,时间和空间复杂度都是:O(1)。 class Solution { public void deleteNode(ListNode node) { node.val = node.next.val; node.next = node.next.next; } } 1、首先我们把「Yellow」的值(node.next.val)赋值给「Green」(node.val)

前端开发 -- HTML

蹲街弑〆低调 提交于 2020-08-11 12:48:40
一、前端开发介绍 作为一枚程序员,如果想要开发网站,其本质就是在socket服务端接收浏览器请求并给其返回数据,并且返回数据格式要符合浏览器能识别的规则。 前端开发的课程目的就是带大家去学习浏览器能识别的所有规则,这样我们就可以服务端给浏览器返回特定规则的数据,从而控制用户浏览器显示的效果。 前端开发中浏览器所有能识别的规则分为三大类,分别是HTML,CSS,JavaScript。 其中HTML即超文本标记语言,是一种标识性的语言。它包括一系列标签.通过这些标签可以将网络上的文档格式统一,使分散的internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字、图形、动画、声音、表格、链接等。 CSS(Cascading Style Sheets)称为层叠样式表,是一种用来表现HTML或XML等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力。概括来说,CSS可用于对页面进行美化。 JavaScript是一种在网络浏览器上运行的编程语言。它主要添加到使用HTML和CSS构建的网站中,并在实现各种页面动态效果方面发挥作用。 例如

HTML小游戏

本小妞迷上赌 提交于 2020-08-11 12:43:43
开发工具:Visual Studio Code 游戏介绍:已知有3个方块,前面的2个方块涂有相近的两种颜色,你需要根据这两种颜色序列的递减情况猜测第三个方块的颜色是什么,并从下面的方块中选择你觉得最接近的颜色。 程序设计步骤: 1.编写html代码 2.编写js代码 html代码编写 设置css文件 import url(' https://fonts.googleapis.com/css?family=Pacifico '); html, body { background: #9cf; margin: 0; padding: 0; } h1, h2 { text-align: center; color: white; font-size: 5vmin; text-shadow: 0 1px 3px rgba(0,0,0,0.25); font-family: Pacifico, arial, serif; font-weight: normal; } h2 { font-size: 3.5vmin; margin-top: 5vmin; } #points { font-family: Pacifico, Verdana, sans-serif; color: white; font-size: 5vmin; text-shadow: 0 1px 3px rgba(0,0,0

CSS浮动布局

你说的曾经没有我的故事 提交于 2020-08-11 11:13:36
CSS浮动布局 浮动布局    浮动是CSS布局中经常使用的一种手段,其实说白了就是使元素进行漂浮脱离正常的文档流排列机制,实现一堆原本的 block 状态的标签可以并排显示,当然这也可以使用 display:inline-block 进行实现,但是通常情况我们不会那么做。    那么在使用浮动时我们应该注意下面的几点。    1.浮动应该发生在一个大盒子内部    2.浮动元素会影响后面文档流排列元素    3.浮动元素会自动转为 inline-block 状态,这意味着原本的 inline 元素可设置宽高,而原本的 block 元素不会独占一行    4.浮动元素会在父盒子的 content 区域中,不会超出父盒子的 padding 区域    5.当一个父盒子中所有元素都进行浮动,那么父盒子会丢失高度 使用浮动    对一个元素使用 float 就可以让该元素飘起来,它可以指定以下一些方向。 选项 说明 left 向左浮动 right 向右浮动 none 不浮动 文档流排列    文档流排列就是自上向下的一种排列方式,对于 block 元素来说,它应该是独占一行的。 <! DOCTYPE html > < html lang ="en" > < head > < meta charset ="UTF-8" > < meta name ="viewport" content =

我来教你 Cookie对象的创建。--乐字节

和自甴很熟 提交于 2020-08-11 11:12:07
Cookie对象 ​ Cookie是浏览器提供的一种技术,通过服务器的程序能将一些只须保存在客户端,或者在客户端进行处理的数据,放在本地的计算机上,不需要通过网络传输,因而提高网页处理的效率,并且能够减少服务器的负载,但是由于 Cookie 是服务器端保存在客户端的信息, 所以其安全性也是很差的。例如常见的记住密码则可以通过 Cookie 来实现。 ​ 有一个专门操作Cookie的类 javax.servlet.http.Cookie 。随着服务器端的响应发送给客户端,保存在浏览器。当下次再访问服务器时把Cookie再带回服务器。 ​ Cookie 的格式:键值对用“=”链接,多个键值对间通过“;”隔开。 Cookie的创建和发送 ​ 通过 new Cookie("key","value");来创建一个 Cookie 对象,要想将 Cookie 随响应发送到客户端,需要先添加到 response 对象中,response.addCookie(cookie);此时该 cookie 对象则随着响应发送至了客户端。在浏览器上可以看见。 // 创建Cookie对象 Cookie cookie = new Cookie("uname","zhangsan"); // 发送Cookie对象 response.addCookie(cookie); F12 查看 Cookie的获取 ​

net.sf.JSONException Map中value字段为null,服务响应500

a 夏天 提交于 2020-08-11 09:01:02
6月2号凌晨系统生产发布,2号白天仓库作业时有仓库拣选单打印面单接口500,不是所有的拣选单掉接口都是500, 当时通过接口响应正产和响应500,逻辑梳理以及数据对比,最后发现是Map 对象里面有一个key 为null把map 对象转成JsonArray 导致的,经测试 JSONObject.fromObject JSONArray.fromObject 上面两个方法,入参是Map对象的时候如果value 里面存在null ,将格式化结果返回给前段都会响应500的 1. JsonArray.fromObject 过程,具体步骤如下图 下面是第 7 步中的执行步骤 此处将 null 替换成了 JSONNull 对象, JSONNull.getInstance() JSONNull 对象 JSONNull 对象结构如下,它实现了 JSON 接口 这个很最重要,正是因为实现了这个接口,在后面的步骤中,都会进入到属于 JSON 的分支里面 最后 12 步骤中 1 中判断 此时的 object 是一个 JSONNull 对象,所以 1 中的前半段是 true , isNull 代码如图会走入红框中的逻辑所以是 true 在进行 ! 运算成了 false 所以直接进入了分支 2, 返回的是一个 JSONObject 对象 , 重点啊,记住这个构造函数 记住这个 true,以及它是实现MAP

Python笔记:制作九宫格图片

泪湿孤枕 提交于 2020-08-11 07:43:39
import os import cv2 import numpy as np from tkinter import * from tkinter.messagebox import showerror, showinfo class JiuGongGe(object): def __init__(self): self.root = Tk() # 创建Tk对象 self.root.title("九宫格转换器") # 设置窗口标题 self.h, self.w = 480, 640 self.root.geometry("{}x{}".format(self.w, self.h)) # 设置窗口尺寸 self.title = Label(self.root, text="九宫格转换器") # 标签 self.title.place(x = int(self.w/2),y = 10,anchor = CENTER) self.label1 = Label(self.root, text="请输入转换图片地址") # 标签 self.label1.place(x=0, y=30, anchor=NW) self.picttext = Entry(highlightcolor='red', highlightthickness=1, width=50) # 创建文本框 self

Linux命令总结大全,包含所有linux命令

女生的网名这么多〃 提交于 2020-08-11 06:03:58
此文档显示内容不全建议去CSDN进行阅读 Linux命令总结大全,包含所有linux命令 使用说明:此文档包含所有的Linux命令,只有你想不到的没有你看不到的,此文档共计10万余字,有8400多行,预计阅读时间差不多需要3个小时左右,所以要给大家说一说如何阅读此文档 为了方便大家阅读,我这里做了相关索引,建议使用搜索的方式阅读,如果您有大把时光去阅读的话您可以试着去 第二个方法就是找我要电子版文档 搜索的话直接使用浏览器的搜索方式就可以了,我这里使用谷歌浏览器进行演示 打开文档 打开谷歌的搜索,键入ctrl+f 右上角出现搜索框后,直接在搜索框中输入要查询的命令,但是查询结果有很多,如我直接输入ls 共计123个结果,如果要准确搜索您需要在命令前面加三个*号,注意后面不要加空格 这下只有6个结果了 文件传输 ***bye 说明 : 中断FTP连线并结束程序 语法 : bye 补充说明 : 在ftp模式下,输入bye即可中断目前的连线作业,并结束ftp的执行 ***ftp 说明 : 设置文件系统相关功能 语法 : ftp [-dignv][主机名称或IP地址] 补充说明 : FTP是ARPANet的标准文件传输协议,该网络就是现今Internet的前身 参数 : ​ -d 详细显示指令执行过程,便于排错或分析程序执行的情形。 ​ -i 关闭互动模式,不询问任何问题。 ​ -g

【Flutter实战】六大布局组件及半圆菜单案例

北慕城南 提交于 2020-08-11 05:07:33
老孟导读:Flutter中布局组件有水平 / 垂直布局组件( Row 和 Column )、叠加布局组件( Stack 和 IndexedStack )、流式布局组件( Wrap )和 自定义布局组件( Flow )。 水平、垂直布局组件 Row 是将子组件以水平方式布局的组件, Column 是将子组件以垂直方式布局的组件。项目中 90% 的页面布局都可以通过 Row 和 Column 来实现。 将3个组件水平排列: Row( children: <Widget>[ Container( height: 50, width: 100, color: Colors.red, ), Container( height: 50, width: 100, color: Colors.green, ), Container( height: 50, width: 100, color: Colors.blue, ), ], ) 将3个组件垂直排列: Column( mainAxisSize: MainAxisSize.min, children: <Widget>[ Container( height: 50, width: 100, color: Colors.red, ), Container( height: 50, width: 100, color: Colors.green,

c# winForm DotNetBar控件之SuperGridControl

假如想象 提交于 2020-08-11 03:25:36
1.添加表头 sgc.PrimaryGrid.SelectionGranularity = SelectionGranularity.Row; // 点击选中一行 DevComponents.DotNetBar.SuperGrid.GridColumn gc = null ; gc = new DevComponents.DotNetBar.SuperGrid.GridColumn( " ID " ); sgc.PrimaryGrid.Columns.Add(gc); gc = new DevComponents.DotNetBar.SuperGrid.GridColumn( " 类型编码 " ); sgc.PrimaryGrid.Columns.Add(gc); 2.添加数据 加一行 sgc.PrimaryGrid.Rows.Add( new GridRow( new object [] { " a " , " b " })); //也就是加一个GrindRow对像 3.设点击选中一行后 取第一行第一列的值 SelectedElementCollection col = sgc.PrimaryGrid.GetSelectedRows(); // 选中的行集合 if (col.Count > 0 ) { GridRow gr = (col[ 0 ] as GridRow); //