分类: 技术

16 篇文章

数据结构|树
树 节点数量 = 边数 + 1 深度/高度 最高 节点深度 从根节点(深度为0)开始, 节点高度 从该节点下面的叶子节点(高度为0)开始数 节点的度 子节点的数量 广度优先遍历 层序遍历 使用队列,初始时将根节点加入,头指针指向根节点,之后的每次都加入头指针所指节点的子节点,并且头指针后移 深度优先遍历 使用栈,先将根节点入栈,之后每次入栈栈顶节点…
Python刷题指南
输入输出 n,k,a,b = map(int,input().split()) n, v = map(int, input().split()) dst = deque(map(int, input().split())) 内置数据结构 双端队列 from collections import deque dst = deque() dst[…
数据结构|栈与队列
栈 栈是一种线性的数据结构,遵循先进后出的原则,最后入栈的元素最先被去除,也就是说栈只能在栈顶进行插入和删除操作,而不能在栈中间或底部进行操作。 实现 #include <bits/stdc++.h> using namespace std; struct Stack { private: int size; int top; int …
thumbnail
Golang|使用Ebitengine写一个飞机大战
Ebitengine介绍 Ebitengine (旧称 Ebiten) 是一款由Go 语言开发的开源游戏引擎。Ebitengine 的简单 API 可以让您的 2D 游戏开发更加简单快捷,并支持同时发布到多平台。 安装 $ go get -u github.com/hajimehoshi/ebiten/v2 示例代码 // Game impleme…
Golang爬虫小记|Iwrite作业自动提醒
大一上那次因为Iwrite的作文忘记写了,最近在掘金看到了一个Golang的定时任务库,所以打算利用爬虫定时获取一下未完成的作业,部署到云服务器上,并通过邮箱通知我。 先介绍一下爬虫的基本思路 现代web开发中,当用户登陆后,通常服务端会给用户签发一个令牌,这个令牌通常是Token,session或者其他的,可以被服务端验证的一段文本数据,之后的任…
数据结构|链表
节点 我们定义一个节点,这个节点包括该节点的值与下一个节点的地址,节点是分散不连续保存在内存中的,在C++中我们可以通过构造函数的方式快速新建一个节点。 struct ListNode { //节点保存的值 int val; //用于指向下一个节点 ListNode *next; //节点构造函数 ListNode(int x) : val(x),…
微信小程序返回页面监听问题解决
起因 刚才在写一个很常见的操作,在用户返回页面时,对用户是否保存了便签内容进行提示,如果未修改则不做提示直接退出,如果修改了则提醒用户未保存确认是否退出。 我以为微信会有这个api对返回按钮进行监听,然后我通过当前输入值和缓存值对比决定是否弹窗提示,但是居然没有这种监听方法?? 看了一圈社区,也有人和我提出一样的问题 如何解决? 微信只提供了两个方…
Golang|Gorm如何实现CreateOrUpdate?
前言 在数据库的CURD过程中,我们偶尔会遇到这样的需求,一条记录发到后端,如果已经存在,就更新这条记录,如果不存在,就插入这条数据。比如我遇见的这个云同步便签的功能, 用户点击保存会有两种情况,一是新建的便签,二是已有的标签经过编辑后保存,所以我们希望在同一个接口兼容这两种操作。 如何实现? 如果正常来说,我第一个想到的是这样 func Crea…
数据结构|浅谈数组与链表
很多编程语言的标准库中都实现了很多数据结构,方便开发者快速上手,避免重复造轮子,例如Java中的XXXList,Go的slice以及container包中的list包。他们大多是基于数组与链表这两个基本数据结构的封装,也是两种不同的数据存储方式,这两种数据结构究竟有何异同? 数组 在内存中,数组由一段连续的内存组成,且长度固定,如图所示。 查找元素…