node

[剑指Offer]30-包含min函数的栈

杀马特。学长 韩版系。学妹 提交于 2020-03-17 09:57:11
题目 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1))。 题解 辅助栈记录当前最小值。 代码 import java.util.Stack; public class Main { private static Stack<Integer> s=new Stack<>();// private static Stack<Integer> minS=new Stack<>(); public static void main(String[] args) { StackWithMin s=new StackWithMin(); s.push(1); s.push(2); s.pop(); s.push(5); s.push(4); System.out.print(s.min()); } public static void push(int node) { s.push(node); if(minS.empty()||node<minS.peek()) {// minS.push(node); } else { minS.push(minS.peek()); } } public static void pop() { s.pop(); minS.pop(); } public static int top() { return

k8s集群部署(3)

谁说胖子不能爱 提交于 2020-03-17 07:01:30
一、利用ansible部署kubernetes集群环境准备    基 于二进制方式部署和利用ansible-playbook实现自动化:既提供一键安装脚本,也可以分步执行安装各个组件,同时讲解每一步主要参数配置和注意事项;二进制方式部署有助于理解系统各组件的交互原理和熟悉组件启动参数,有助于快速排查解决实际问题。 版本组件 :   kubernetes v1.9.7   etcd v3.3.4   docker 18.03.0-ce   calico/node:v3.0.6   calico/cni:v2.0.5   calico/kube-controllers:v2.0.4   centos 7.3+ 集群规划和基础参数设定:   1.高可用集群所需节点配置如下:     部署节点×1:运行ansible脚本的节点     etcd节点×3:注意etcd集群节点必须是1,3,5,7……奇数个节点     master节点×1:运行集群主要组件     node节点×3:真正应用部署的节点,根据需要增加机器配置和节点数   2.在部署节点准备ansible:使用ansible的docker环境启动:     1° 下载内部源配置脚本并运行脚本: wget http://download2.yunwei.edu/shell/yum-repo.shbash yum-repo.sh  

LeetCode 863. All Nodes Distance K in Binary Tree

我是研究僧i 提交于 2020-03-17 06:59:09
原题链接在这里: https://leetcode.com/problems/all-nodes-distance-k-in-binary-tree/ 题目: We are given a binary tree (with root node root ), a target node, and an integer value K . Return a list of the values of all nodes that have a distance K from the target node. The answer can be returned in any order. Example 1: Input: root = [3,5,1,6,2,0,8,null,null,7,4], target = 5, K = 2 Output: [7,4,1] Explanation: The nodes that are a distance 2 from the target node (with value 5) have values 7, 4, and 1. Note that the inputs "root" and "target" are actually TreeNodes. The descriptions of the inputs above are

通过nodejs实现文件的上传

故事扮演 提交于 2020-03-17 01:31:26
通过nodejs实现文件的上传 主要内容 本文将用来讲述如何通过nodejs进行文件上传,将会涉及到以下知识点: 通过express模块进行服务器的搭建 通过multer模块将上传的文件保存到指定目录 通过fs、path模块将文件改名,添加后缀 进行已上传文件的预览 思想 前端表单->后端接收文件本身->保存到服务器上->给数据库记录文件的一些信息->返回给nodejs相关信息->nodejs返回前端 注意:enctype必须得是multipart/form-data < input type = file enctype = " multipart/form-data " name = " fieldname " > 实现 multer->文件名随机->fs模块改名->path模块解析磁盘路径 本文将上传图片为例,下面开始详细的设计: 将需要用到的相关模块下载引入 该模块可以通过npm下载,npm的下载以及相关操作这里就不再诉说了,不是重点 npm init -y npm i express multer 引入模块 const express = require ( "express" ) ; const path = require ( "path" ) ; const fs = require ( "fs" ) ; const multer = require (

Java 集合

你。 提交于 2020-03-17 01:16:34
1、说说List,Set,Map三者的区别? List:有序、元素可重复 Set:元素不能重复 Map: 一个元素即一个键值对,key唯一标识一个键值对,key不能重复,元素可以重复,key、value均可以是任意类型。 2、Arraylist 与 LinkedList 区别? 1. 是否保证线程安全: ArrayList 和 LinkedList 都是不同步的,也就是都不保证线程安全; 2. 底层数据结构: Arraylist 底层使用数组; LinkedList 底层使用双向链表(JDK1.6之前为循环链表,JDK1.7取消了循环。注意双向链表和双向循环链表的区别,下面有介绍到!) 3. 插入和删除是否受元素位置的影响: ① ArrayList 采用数组存储,插入和删除元素的时间复杂度受元素位置的影响。 比如:执行 add(E e) 方法的时候, ArrayList 会默认在将指定的元素追加到此列表的末尾,这种情况时间复杂度就是O(1)。但是如果要在指定位置 i 插入和删除元素的话( add(int index, E element) )时间复杂度就为 O(n-i)。因为在进行上述操作的时候集合中第 i 和第 i 个元素之后的(n-i)个元素都要执行向后位/向前移一位的操作。 ② LinkedList 采用链表存储,所以对于 add(E e) 方法的插入

双向链表大型攻略

两盒软妹~` 提交于 2020-03-16 20:35:32
我们之前已经做了链表的大型攻略。包括如何创建一个链表,插入节点,打印数据,删除节点等常用的功能。我们通常将这种每个节点有一个数据段和一个指向下个节点指针的链表为 单向链表 。我想通过某一个节点能找到下一个节点,但是如果我想通过该节点找到上一个节点呢?这几乎是不可能的。除非我将单向链表首尾相连构成环形的单向循环链表,走一个循环之后就可以找到其上一个节点的数据了,但是这有过于麻烦,为了解决这种问题,我们引入了 双向链表 ,也就是说在一个节点上不仅有指向下一个节点的指针,还有另外一个指针指向上一个节点。 没错,每一个节点就长这个样子,有两个指针,当然了我们给他们不容的名字,并将他们分别指向上一个和下一个节点: 当然了也需要有一个头指针和头节点 其实双向链表和单向链表的区别仅仅就是每个节点多了一个指向上个节点的指针,所以我们在操作时要多做一个指向的步骤。 我们首先 创建一个节点 ,要记得是2个指针 typedef struct Node { int data; struct Node *prev; struct Node *next; }node; 用刚才的结构体写一个函数, 新建节点 ,和之前的单向链表别无二致 /************************* *函数功能:新建节点 *输入参数:节点所存数据 *返 回 值:节点指针 **************************

node安装后的设置(node_global和node_cache)

痞子三分冷 提交于 2020-03-16 20:22:47
node安装后的设置node_global和node_cache 设置node_global和node_cache 设置环境变量: 测试 安装淘宝镜像cnpm 今天不小心把电脑上不少东西删掉了,node,npm,yarn,vscode等等东西都没了,希望重新安装,这里记录一下 本地安装:npm install express 会安装到当前项目 全局安装:npm install express -g 会安装到指定的目录( node_global ) 另外,如果没有设置全局目录node_global,那么全局安装的文件将会保存到 C:\Users\chen\AppData\Roaming\npm (chen是自己设置的计算机名字) 所以,安装好node后,要设置一下node_global和node_cache(node缓存文件夹) 设置node_global和node_cache 在node安装目录创建 node_global 和 node_cache 文件夹 设置环境变量: 用户变量设置:将用户变量中 PATH 的值改成 C:\D\downLoad\node\node_global,没有PATH,可以直接添加。 系统变量设置:添加变量 NODE_PATH 值为:C:\D\downLoad\node\node_modules 打开命令行,执行 npm config set prefix

[译]幕后的gulp:构建一个基于流的任务自动化工具

穿精又带淫゛_ 提交于 2020-03-16 17:33:36
某厂面试归来,发现自己落伍了!>>> 幕后的gulp:构建一个基于流的任务自动化工具 /** * 谨献给Yoyo * * 原文出处:https://www.toptal.com/nodejs/gulp-under-the-hood * @author dogstar.huang <chanzonghuang@gmail.com> 2016-05-14 */ 前端开发人员现在正在使用多种工具把日常操作自动化。三个最流行的解决方案是Grunt,Gulp和Webpack。每个工具都建立在不同的理念,但是它们共享同一个目标:精简前端构建过程。例如,Grunt是配置驱动的,而Gulp几乎不需要配置即可执行。事实上,Gulp依赖于开发人员编写代码来实现构建流程 - 各种构建任务。 当谈到选择这些工具之一时,我个人最喜欢的是Gulp。总而言之,这是一个简单,快速和可靠的解决方案。在这篇文章中,我们将看到幕后的Gulp是如何工作,通过花点心思在实现我们自己的像Gulp这样的工具。 Gulp API 接口 Gulp自带的只有 四个简单的功能 : gulp.task gulp.src gulp.dest gulp.watch 这四个简单的功能,通过各种组合提供了Glup全部的强悍和灵活性。在4.0版本中,Gulp引入了两个新的功能:gulp.series和gulp.parallel

【天赢金创】探究Gulp的Stream

五迷三道 提交于 2020-03-16 15:04:38
某厂面试归来,发现自己落伍了!>>> 来自Gulp的难题 描述Gulp的项目构建过程的代码,并不总是简单易懂的。 比如Gulp的 这份recipe : var browserify = require ( 'browserify' ); var gulp = require ( 'gulp' ); var source = require ( 'vinyl-source-stream' ); var buffer = require ( 'vinyl-buffer' ); var uglify = require ( 'gulp-uglify' ); var sourcemaps = require ( 'gulp-sourcemaps' ); var gutil = require ( 'gulp-util' ); gulp.task( 'javascript' , function () { var b = browserify({ entries: './entry.js' , debug: true }); return b.bundle() .pipe(source( 'app.js' )) .pipe(buffer()) .pipe(sourcemaps.init({loadMaps: true })) .pipe(uglify()) .on( 'error' ,