node

707.设计双向链表

霸气de小男生 提交于 2020-01-17 04:07:01
文章目录 707.设计双向链表 链表简介 题目描述 代码实现 707.设计双向链表 链表简介 链表(LinkedList) 是一种线性表,但不是顺序表,因为它是通过节点直接的相互引用相互联系起来的。 由于不必按顺序存储, 链表在插入和删除的时候可以达到O(1)的复杂度 ,比顺序表快的多。但是查找一个节点或者访问特定编号的节点则需要O(n)的时间。 使用链表结构可以克服数组链表需要预先知道数据大小的缺点,充分利用计算机的内存空间,实现灵活的动态管理,但是链表失去了数组随机读取的优点,且链表由于 增加了节点指针域,空间开销较大 。 单链表结构如下图,但是参考 LinkedList 的实现思路,本文将会对双向链表进行总结: 下面是leetcode上面关于链表的题目及解题思路。 题目描述 设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。 在链表类中实现这些功能: get(index) :获取链表中第 index 个节点的值。如果索引无效,则返回-1。 addAtHead(val) :在链表的第一个元素之前添加一个值为 val 的节点。插入后

函数指针 —— 《C和指针》

断了今生、忘了曾经 提交于 2020-01-17 03:59:39
函数指针 函数指针是指向函数的指针。 因此“函数指针”本身首先是指针变量,只不过该指针变量指向函数。 声明 返回值类型 ( *指针变量名) (形参列表); int (*pfunc)(int x); int (*pfunc)(int); //无需将形参名给出 初始化 和普通指针一样,函数指针在使用之前必须初始化为指向某个函数。 int func(int x); //被指向的函数 pfunc = func; //初始化函数指针pfunc,使其指向函数func pfunc = &func; //也是正确的 int (*pfunc)(int) = func; //也可以直接在声明时进行初始化 注意:在函数指针初始化之前需要有被指向函数func的原型,否则编译器就无法检查func的类型是否和pfunc所指向的类型一致。 使用: int ans; ans = func(5); ans = pfunc(5); ans = (*pfunc)(5); //也是正确的,但间接访问操作是不必要的 注意:在初始化赋值语句中的操作符 & 和调用函数指针时的 * 操作符都是可选的: 1. 函数名被使用时总是由编译器把它转换为函数指针。 & 只是显示地说明了编译器将隐式执行的任务。 2. * pfunc把函数指针pfunc转换为一个函数名,编译器在执行函数调用之前又会把它转换回去。因此这个转换是不必要的。

【Leetcode & Union-Find】使用并查集解决1319. Number of Operations to Make Network Connected

大憨熊 提交于 2020-01-17 01:08:17
写在前面 这是今天下午做leetcode contest的第三题,一开始看到的时候以为考察的是图的连通性的问题,没能想出解决方法,后来看Discussion,发现大家都用到了Union-Find,正好《算法》也看到Union-Find,于是就去把这章看完了再来做,下面会先介绍Union-Find,然后写解题思路。 Union-Find(并查集) 由Dynamic Connectivity Problem引出。 问题Context: 有N个node(0, ……, N - 1),(p, q) pair指node p和node q连通(connection),这个连通关系是一个 等价关系 (自反性、对称性、传递性)。互相之间有通路的节点可以认为是在同一个component中(个人觉得这里也可以说在一个集合中)。 算法可以做到: 连通(connect / union)两个节点 两个节点原本处在不同的component中,若将两个节点连通,则两个component也合并为一个(做并操作) 找到node p所在的component(一般是用该component中某个node的id来指代这个component) 判断两个node是否连通 获得component的个数 API public void union ( int p , int q ) ; public int find ( int p

Appium Hybrid混合应用测试——Native切换WebView

ぐ巨炮叔叔 提交于 2020-01-16 23:41:54
Appium H ybrid混合应用测试过程中,经常需要在Native和WebView之间进行切换; 1.切换至WEBVIEW操作; for cons in driver.contexts: if cons.lower().startswith("webview"): driver._switch_to.context(cons) break # 或 cons = driver.contexts # 获取上下文列表 driver._switch_to.context(cons[-1]) 2.切换至NATIVE_APP操作; driver._switch_to.context("NATIVE_APP") 切换WebView时遇到两个问题,导致无法进行 WebView 切换: 【问题1 contexts只能获取NATIVE_APP,无法获取WEBVIEW】 使用uiautomatorviewer定位元素,显示class值为:android.webkit.WebView 但是driver.contexts只打印出了‘NATIVE_APP’; >>> driver.contexts ['NATIVE_APP'] 【解决方案】 需要开启webview远程调试功能, Android 4.4以上,需要在应用代码中增加一下代码段开启该功能 (可由开发人员增加后重新打包给测试):

707.设计双向链表

此生再无相见时 提交于 2020-01-16 20:45:20
目录 707.设计双向链表 链表简介 题目描述 代码实现 707.设计双向链表 链表简介 链表(LinkedList) 是一种线性表,但不是顺序表,因为它是通过节点直接的相互引用相互联系起来的。 由于不必按顺序存储, 链表在插入和删除的时候可以达到O(1)的复杂度 ,比顺序表快的多。但是查找一个节点或者访问特定编号的节点则需要O(n)的时间。 使用链表结构可以克服数组链表需要预先知道数据大小的缺点,充分利用计算机的内存空间,实现灵活的动态管理,但是链表失去了数组随机读取的优点,且链表由于 增加了节点指针域,空间开销较大 。 单链表结构如下图,但是参考 LinkedList 的实现思路,本文将会对双向链表进行总结: 下面是leetcode上面关于链表的题目及解题思路。 题目描述 设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个属性:val 和 next。val 是当前节点的值,next 是指向下一个节点的指针/引用。如果要使用双向链表,则还需要一个属性 prev 以指示链表中的上一个节点。假设链表中的所有节点都是 0-index 的。 在链表类中实现这些功能: get(index) :获取链表中第 index 个节点的值。如果索引无效,则返回-1。 addAtHead(val) :在链表的第一个元素之前添加一个值为 val 的节点。插入后

hexo g 或者 hexo s 报错FATAL Something's wrong.

a 夏天 提交于 2020-01-16 20:43:40
如题hexo在构建templates时出错 报错原因是 INFO Start processing FATAL Something's wrong. Maybe you can find the solution here: http://hexo.io/docs/troubleshooting.html Template render error: (unknown path) [Line 282, Column 5] unexpected token: % at Object._prettifyError (/home/jason/Documents/blogs/node_modules/nunjucks/src/lib.js:36:11) at Template.render (/home/jason/Documents/blogs/node_modules/nunjucks/src/environment.js:524:21) at Environment.renderString (/home/jason/Documents/blogs/node_modules/nunjucks/src/environment.js:362:17) at Promise (/home/jason/Documents/blogs/node_modules/hexo/lib/extend

在Linux系统安装Nodejs 最简单步骤

一笑奈何 提交于 2020-01-16 17:49:57
1、去官网下载和自己系统匹配的文件: 英文网址:https://nodejs.org/en/download/ 中文网址:http://nodejs.cn/download/ 通过 uname -a 命令查看到我的Linux系统位数是64位(备注:x86_64表示64位系统, i686 i386表示32位系统), 2、下载下来的tar文件上传到服务器并且解压,然后通过建立软连接变为全局; 1)上传服务器可以是自己任意路径,目前我的放置路径为 cd /backup/soft/ 2)解压上传(解压后的文件我这边将名字改为了nodejs,这个地方自己随意,只要在建立软连接的时候写正确就可以) ① [root@web-168-80 ~]# tar -xvf node-v12.14.1-linux-x64.tar ② [root@web-168-80 ~]# mv node-v12.14.1-linux-x64 /usr/local/nodejs ③确认一下nodejs下bin目录是否有node 和npm文件,如果有执行软连接,如果没有重新下载执行上边步骤; 3)建立软连接,变为全局 ①[root@web-168-80 ~]# ln -s /usr/local/nodejs/bin/npm /usr/local/bin/ ②[root@web-168-80 ~]# ln -s /usr

Windows 10 安装node管理工具 nvm 1.17(最新版本)

牧云@^-^@ 提交于 2020-01-16 14:06:58
1.去官网下载最新的安装包 https://github.com/coreybutler/nvm-windows/releases    在安装管理工具之前一定要把电脑中的node卸载干净,不然会有坑! 下载傻瓜式一键安装,要注意安装路径,不能有空格! 2.安装检测 新打开cmd 输入 nvm 如何出现错误,建议重新安装,或者根据错误自行Google 3.操作nvm 每个命令的用法和说明 4.安装node nvm install latest 先安装最新的 在安装项目需要的 执行mvn ls,可以查看安装的node版本 想用哪个就 nvm use xxx 5.执行cmd要用管理员模式运行! 感谢提供的帮助: https://www.jianshu.com/p/324044f2f542 来源: https://www.cnblogs.com/xiaxuening/p/11649273.html

安装node版本管理工具之NVM

假装没事ソ 提交于 2020-01-16 14:05:10
nvm是个啥?nvm是一个可以让你在同一台机器上安装和切换不同版本node的工具。 你可能会问,为什么会有这个工具?有时候在开发的时候,对node版本有强制要求,有的要求用最新版本,有的要求用稳定版本,你不可能来回卸载安装吧,这时候NVM应运而生。 下载地址 github地址: https://github.com/creationix/nvm windows下载地址: https://github.com/coreybutler/nvm-windows/releases 下载完成之后,输入以下命令,表示安装成功 这时候先别急着安装node 我们下来设置一下node镜像和npm镜像,( 注意:这里有点小坑,小编就是在这个地方弄了好久,一直设置不成功,后来看到了他的默认值,最后戴上了斜杠,才找到原因。 ) 先设置node镜像 在设置npm镜像 设置好了,就能很狂的安装node,如果你不设置,就会很慢,当然你也可以通过科学上网,你懂得 用nvm list available列出node可用版本。 使用命令nvm install [版本号] 安装指定版本 nvm list表示你的机器当前安装了哪些node版本,*号表示你当前使用的版本 切换版本号 nvm use [版本号] 至此,nvm主要功能就介绍完了,是不是感觉很强大?赶紧用起来吧 来源: https://www.cnblogs

nvm —— Node版本管理工具

有些话、适合烂在心里 提交于 2020-01-16 14:03:40
nvm下载 下载地址 下载nvm-setup.zip文件 nvm安装 1.以管理员身份运行install.cmd文件,设置文件路径 root: C:\Users\Administrator\AppData\Roaming\nvm path: C:\Program Files\nodejs arch: 64 proxy: none 确保目录下有一个setting.txt文件,在命令行输入 nvm 回车看到nvm的版本号表示nvm安装成功 2.环境变量配置:点击我的电脑》属性》高级设置》环境变量》 a. 删除系统自带的nvm变量:NVM_HOME和NVM_SYMLINK b. 打开path:删除nvm自动添加的变量C:\nvm;C:\Program Files\nodejs c. 配置用户变量: NVM_HOME = C:\nvm NVM_SYMLINK = C:\nodejs Path = %NVM_HOME%;%NVM_SYMLINK% 配置完成保存 nvm配置 淘宝镜像 1.直接使用命令行方式: nvm node_mirror https://npm.taobao.org/mirrors/node/ nvm npm_mirror https://npm.taobao.org/mirrors/npm/ 2.修改setting.txt文件,添加以下两行: node_mirror: