加一
66.加一描述给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。
你可以假设除了整数 0 之外,这个整数不会以零开头。
示例
示例1
输入:[1,2,3]
输出:[1,2,4]
示例2
输入:[4,3,2,1]
输出:[4,3,2,2]
代码及其思路思路看到这个题目,第一反应思路:把数组转为数字,然后加1,然后再转为数组。所以有了以下代码:
12345678910111213/** * @param {number[]} digits * @return {number[]} */var plusOne = function(digits) { let sum = 0; for(let i = 0; i < digits.length; i++){ sum += digits[i] * Math.pow(10, digits.length - i - 1); } let res = sum ...
pow(x,n)
pow(x,n)描述实现 pow(x, n) ,即计算 x 的 n 次幂函数
示例
示例 1:
输入: 2.00000, 10
输出: 1024.00000
示例2
输入: 2.10000, 3
输出: 9.26100
示例 3:
输入: 2.00000, -2
输出: 0.25000
题解及思路思路其实第一反应是这个Math.pow(x,n),的确可以,但是….
另一个思路写个循环不断的相乘,理论上可以,但是超出时间限制
另一个想法:pow(x,n),如果n为偶数,那么pow(x,n) = pow(x, n/2)*pow(x, n/2),这个时候无论n是否为正数,这么算都是可以的。比如pow(2,4)和pow(2,-4);如果n为奇数,且n为正数 pow(x,n) = pow(x, parseInt(n/2))*pow(x, parseInt(n/2))*x,如果n为负数pow(x,n) = pow(x, parseInt(n/2))*pow(x, parseInt(n/2))\/x;这个就是递归,递归的停止条件是当n等于0的时候返回1.
代码1234 ...
回文数
leetcode-9.回文数描述判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例
示例1
输入:121
输出: true
示例2
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。
题解及分析思路
分析思路也许(肯定)不是最优,只是想法。
思路输入是一个整数,如果这个整数小于0,那么可定不是回文数。返回false。
如果这个正是整数大于0,可以把这个整数转为字符串数组:(num+’’).split(“”),例如12321 => [‘1’, ‘2’, ‘3’, ‘2’, ‘1’],然后利用两个变量left和right,不断去判断第n个和倒数第n个是否相等即可。
代码1234567891011121314151617181920/** * @param {number} x * @return {boolean ...
node核心模块——os
node module: os
os.EOL
string类型
操作系统特定的行末标志。
在POSIX上是 \n
在Windows上是 \r\n
1console.log('hello' + os.EOL + 'world');
PS: \r: 回到当前行的最左边;\n: 向下移动一行,并不左右移动
os.arch()
返回<string>
返回为其编译 Node.js 二进制文件的操作系统的 CPU 架构。 可能的值有:’arm’、 ‘arm64’、 ‘ia32’、 ‘mips’、 ‘mipsel’、 ‘ppc’、 ‘ppc64’、 ‘s390’、 ‘s390x’、 ‘x32’ 和 ‘x64’。返回的值等价于 process.arch。
1console.log(os.arch());// x64
os.constants
Object类型
包含错误码、进程信号等常用的操作系统特定的常量。
os.cpus()
返回<Object[]>
返回一个对象数组, ...
centos7安装jenkins和gitlab踩坑记
centos7安装jenkins和gitlab踩坑记一、背景
主机:win10
虚拟机:centos7
目标:成功安装gitlab&jenkins,并且可以正常利用gitlab的push event webhook触发jenkins的自动构建任务。
二、安装gitlab首先要在CentOS系统上面安装所需的依赖:ssh、防火墙、postfix(用于邮件通知)、wegt,以下这些命令也会打开系统防火墙中的HTTP和SSH端口访问。
安装ssh协议
安装命令: yum install -y curl policycoreutils-python openssh-server
设置ssh服务开机自启动
安装命令: ystemctl enable sshd
启动ssh服务
启动命令: systemctl start sshd
安装防火墙
安装命令: yum install firewalld systemd -y
开启防火墙
开启命令: service firewalld start
添加http服务到firewalld
命令: firewall-cmd —permane ...
node核心模块——fs
node module fs
注:斜体加粗的api是有疑问的。
所有文件系统操作都具有同步和异步的形式
大多数 fs 操作接受的文件路径可以指定为字符串、Buffer、或使用 file:协议的 URL对象
文件描述符: 在 POSIX 系统上,对于每个进程,内核都维护着一张当前打开着的文件和资源的表格。 每个打开的文件都分配了一个称为文件描述符的简单的数字标识符。 在系统层,所有文件系统操作都使用这些文件描述符来标识和跟踪每个特定的文件。 Windows 系统使用了一个虽然不同但概念上类似的机制来跟踪资源。 为了简化用户的工作,Node.js 抽象出操作系统之间的特定差异,并为所有打开的文件分配一个数字型的文件描述符。
fs.Dir代表目录流的类
由 fs.opendir()、fs.opendirSync() 或 fsPromises.opendir() 创建。
dir.close() 返回promise,将会在关闭资源之后被resolve。这个方法的作用时异步地关闭目录底层资源句柄。随后的读取将会导致错误。
dir.close(callback) 这个方法的作用 ...
node核心模块——path
node module: path
path.basename(path [,ext]) 方法返回 path 的最后一部分
12345path.basename('/foo/bar/baz/asdf/quux.html');// 返回: 'quux.html'path.basename('/foo/bar/baz/asdf/quux.html', '.html');// 返回: 'quux'
path.delimiter 提供平台特定的路径定界符
12345console.log(process.env.PATH);// 打印: 'C:\Windows\system32;C:\Windows;C:\Program Files\node\'process.env.PATH.split(path.delimiter);// 返回: ['C:\\Windows\\system32', 'C:\\Windows', ' ...
Shell value too great for base
Shell: value too great for base记录一下《鸟叔的linux私房菜(第三版)》第13章P399“编写一个shell脚本计算还有几天过生日”遇到的问题。
123456789101112131415161718192021222324252627#!/bin/bashecho "I will caculate..."read -p "Please input you birthday(YYYYMMDD, ex>19940910):" birthdaydate2 = `echo $birthday | grep "[0-9\{8\}]"`if ["date2" == ""]; then echo "please input correct date format" && exit 0fideclare -i date_birth_md = 10#`date --date="$date2&q ...
Xshell无法连接到Linux虚拟机
Xshell无法连接到Linux虚拟机今天用Xshell连接Linux虚拟机时,连接失败(检测了sshd服务是打开的)。不知道为啥。于是就用虚拟机ping了主机,没问题,可以ping通,但是呢,用主机ping虚拟机,不好使。于是在网上找了找,找到了答案。
原文地址:linux虚拟机能ping通windows主机,windows主机ping不通linux虚拟机的解决办法
下面的我根据个人情况有一点修改。
虚拟机网络连接方式选择NAT
关闭liunx防火墙关闭防火墙的命令:
1service iptables stop
确定是否关闭:service iptables status
关闭windows防火墙
可自行百度
查看虚拟机IP在linux使用ifconfig查看ip,如图可看出ip是192.168.19.130
在windows主机的网络设置中选择VMNet8
——>右键——>属性——>TCP/Ipv4——>IP地址输入192.168.19.1(这个是根据虚拟机192.168.19.130来的),子网掩码输入255.255.255.0,其他空
再互相 ...
Cookie、Session、WebStorage
Cookie、Session、WebStorageCookie
cookie是一段由服务器发送给浏览器并保存到本地的一段数据(缓存),大小一般为4KB.
cookie存储着用户的一些信息,在浏览器再次访问同一个URL时会将这段Cookie附加到HTTP请求中发送给服务端。因此,这会增加流量消耗。
Cookie一般在浏览器关闭(会话结束)时就被删除,但也可以通过Expire或Max-Age来设置过期时间。
浏览器可以通过document.cookie读写Cookie,若要阻止此行为,可以在Set-Cookie头中添加HttpOnly标记。
SessionSession的实质是存储在服务器里的一小块内存,一般来说是基于Cookie实现的。实现过程如下:
123456789/*服务器端1.当第一次使用Session时,服务器要创建一个sessionID来作为session中存放用户信息的唯一标识*/let session = {};let sessionID = Math.random().toString().slice(2);/假设为 '123456789 ...