从今天开始,我们就要初涉算法,请大家做好心理准备嗷! 递归 递归这个名词大家估计都耳熟能详吧,那咱们跳过吧 但是我们还是要好好学习递归的,因为递归对于我们后面学习深搜、二叉树是非常重要的。 如果你还没听说过递归,那么我告诉你,你可以把递归理解成一种特殊的循环。还记得小时候听过
目录3.3 栈(Stack)ADT3.3.1 栈模型3.3.2 栈的实现栈的链表实现栈的数组实现3.3.3 应用 3.3 栈(Stack)ADT 3.3.1 栈模型 栈是限制插入和删除只能在一个位置上进行的表,该位置是表的末端,叫作栈的顶(top)。对栈的基本操作又Push(进栈)和Pop(出栈),前者相当于插入,后者相当于删除最后插入的元
前置知识点 (1) pi = acos(-1); (2) 余弦定理 c^2 = a^2 + b^2 - 2abcos(t) 浮点数的比较 const double eps = 1e-8; int sign(double x) // 符号函数 { if (fabs(x) < eps) return 0; if (x < 0) return -1; return 1; } int cmp(double x, double y) // 比较函数
1 "use strict"; 2 3 var __emptyPoint = null, __emptyContext = null, __emptyPointA = null; 4 5 const ColorRefTable = { 6 "aliceblue": "#f0f8ff", 7 "antiquewhite": "#faebd7",
\(P1641 [SCOI2010]\)生成字符串 前置知识 组合数、坐标轴。 题目描述 以\(n\)个\(1\)和\(m\)个\(0\)组成字符串,求出满足条件「在任意的前\(k\)个字符中,\(1\)的个数不能少于\(0\)的个数」的字符串数量。 解题思路 考虑到题目要求的条件「\(1\)的个数不少
原题链接 第一维直接排序,然后cdq分治+树状数组 对于分治的左右区间,区间内部按照第二维排序(已按第一维排序好了,就算打乱顺序,左右区间整体的第一维的偏序关系也不会受到影响) 然后遍历右区间的元素,把左区间的第二维小于当前元素的加入树状数组,统计答案即可,因为区间内部第二维都是单调
一、cookie和session的简介 ''' HTTP协议四大特性 1.基于请求响应 2.基于TCP、IP作用于应用层之上协议 3.无状态 4.无连接''' # 我们来看一下无状态 ''' 服务端是无法识别客户端的状态的 在互联网初期所有的客户端访问服务端都是一样的数据 所以就
base64.js // // THIS FILE IS AUTOMATICALLY GENERATED! DO NOT EDIT BY HAND! // ;(function(global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof
继续记录学习React项目的成果。 用户认证模块 简单的用户认证模块功能可以概括为:注册、登录、登出、token处理,额外功能可以从这些功能上进行拓展。 创建auth模块。先定义User接口、baseUrl以及一些token操作: export interface User { id: string; name: string; email: strin
<table align="center"> <form name="theForm" id="demo" method="get" onSubmit="return Validator.Validate(this,2)"> <tr> <td>身份证号:</td> <td><input name="Ca
一、前言 一个vue项目里前端请求最起码几十个起步,请求方式也各有不同,为了方便管理,也减轻工作量,比较好的做法是集中管理,在文件中统一管理各类请求,包括请求头参数,参数的携带方式,是否返回blob流等等。 二、实现方法 1、首先创建在项目下untils文件夹创建request.js文件 这里面实现,
前言 g 对象也就是global 全局对象,可以用于存放开发者自己定义的一些数据,在整个request生命周期内生效。 g 对象讲解 g 也是我们常用的几个全局变量之一。在最开始这个变量是挂载在 Request Context 下的。但是在 0.10 以后,g 就是挂载在 App Context 下的。 首先,说一下 g 用来干什
题面(骑士共存问题) 在一个 \(n \times n\) 个方格的国际象棋棋盘上,马(骑士)可以攻击的棋盘方格如图所示。棋盘上某些方格设置了障碍,骑士不得进入。 对于给定的 \(n \times n\) 个方格的国际象棋棋盘和 \(m\) 个障碍标志,计算棋盘上最多可以放置多少个骑士,使得它们彼此互不攻击。 对于
工厂方法模式 咖啡接口 package factoryMethod type coffer interface{ addMilk() addSugar() getName() string } 咖啡 package factoryMethod type coffee struct{ name string } 中式咖啡 package factoryMethod type chinaCoffee struct { coffee } func
装饰器 def count_time(func): def wrapper(*args, **kwargs): start_time = time.time() res = func(*args, **kwargs) end_time = time.time() print(end_time - start_time) return res return wr
/** * 提取body中的img-url * @param string $body * @return array 路径数组 */ function getBodyImgs($body=''){ preg_match_all("/<img([^>]*)\s*src=('|\")([^'\"]+)('|\")/i",$body,$match); return is_ar
一、简述 本文章主要介绍有关二分图的两个基础算法。 二、二分图 二分图,它的端点可以被划分为两个集合,每个集合内部不含有边,边的两个端点分别位于两个集合。 关于二分图有一个性质,即一个图是二分图当且仅当该图不含有奇数环(一个环的边数为奇数,则这个环称为奇数环)。 三、染色法
1 //递归 --> 迷宫问题 2 public class MazeQuestion { 3 4 public static void main(String[] args) { 5 //二维数组 6 int[][] migong = new int[8][7]; 7 //用 1 来表示墙壁 8 //先将上下左右作用初始化为1 9 for (int
题目链接:https://www.acwing.com/problem/content/862/ 放AC代码 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int N = 1e5+10, M = 2e5+10;//因为是无向图所以边的数量*2 4 int e[M], ne[M], h[N], cnt; 5 int color[N]; 6 7 void add(int u, int v) 8
function.php function htmlentities_custom($str) { return htmlentities($str, ENT_QUOTES); } config.php return [ 'DEFAULT_FILTER' => 'htmlentities_custom', ];
面试算法题 dfs相关 全排列 #include<bits/stdc++.h> using namespace std; const int N = 10; //用一个path数组来存储每次到底层的路径 int path[N]; //用一个布尔数组来存储每次已经遍历的点,默认是false bool st[N]; int n; //u表示当前的层数 void dfs(int u) {
const within = (keyCode) => { // Backspace 8, Tab 9, const specialKeys = [8, 9]; return ( (keyCode >= 48 && keyCode <= 57) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 97 && keyCode <
findCategory(id) { // this.Category=[{id:1,name:'ljj'},{id:2,name:'wmy'}] var ar = this.Category.find(function (elem) { return elem.id == id; }); retu
1、什么是函数? 在程序中,函数就是具备某一功能的工具。 事先将工具准备好即函数的定义。 遇到应用场景拿来就用即函数的调用。 2、为什么要用函数? 不用函数的问题是: 1、程序代码冗长 2、程序的可扩展性差 3、程序的可读性差 3、如何用函数
1.二叉搜索树:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。(即中序遍历情况下,值依次增大) # 二叉搜索树 # 中序遍历情况下,值递增则为二叉树 def isBSTree(head):