二维容器vector的初始化
二维容器vector的初始化
直接看一下二维容器初始化代码:
vector<vector<int>> table(size1, vector<int>(size2, value));
声明一个名为table的容器,其元素为vector的容器;size1为vector容器个数,即一维大小;size2为vector容器大小,即为二维大小,value为初始化数值。
推广 三维
vector<vector<vector<int>>> cube(size1, vector<vector<int>>(size2, vector<int>(size3, value)));
这里...
力扣42接雨水
layout: article
title: 接雨水
接雨水
原题链接:42. 接雨水 - 力扣(LeetCode)
动态规划重点思路:
首先用两个数组,lmax [i] 代表第 i 列左边最高的墙的高度,rmax[i] 代表第 i 列右边最高的墙的高度。(一定要注意下,第 i 列左(右)边最高的墙,是不包括自身的)
对于 lmax我们其实可以这样求。
lmax[i] = Max(lmax[i-1],height[i-1])。它前边的墙的左边的最高高度和它前边的墙的高度选一个较大的,就是当前列左边最高的墙了。
对于 rmax我们可以这样求。
rmax[i] = Max(rmax[i+1],height[i+1]) 。它后边的墙的右边的最高高度和它后边的墙的高度选一个较...
mc服务器搭建
mc服务器搭建
事前准备
首先需要一台机子来跑服务端,可以在自己电脑本地跑但不推荐,因为自己电脑没有公网ip,还需要内网穿透将内网映射到公网,也达不到游戏24小时一直运行的效果(你把自己电脑一直开着当我没说)。
我这里用的是华为云的云耀云服务器,系统内核是linux。
安装运行环境jdk
首先更新软件包列表,运行以下命令:
sudo apt update
然后使用apt安装jdk:
sudo apt install openjdk-17-jdk
这里的17是jdk版本,可以自行修改。如果java命令可以被成功识别则安装成功。如下图效果。
部署mc服务端
首先下载服务端,我这里用mc官网提供的原版1.20.1下载地址跳转
如果和我一样是在本地下载的则还需要...
sqlmap基本使用
sqlmap基本使用
sqlmap简介
sqlmap是一款基于python编写的渗透测试工具,在sql检测和利用方面功能强大,支持多种数据库。
sqlmap常用命令
-h 显示基本帮助信息
-hh 显示高级帮助信息
–version 显示版本号
-v 详细等级(0-6 默认 1)
0:只显示python错误以及重要信息
...
实验
实验总结
通过两个搭建LNMP实验,“体验”了一下docker,并对LNMP有了一个“大概”的了解
Docker 是一个开源的应用容器引擎
LNMP 是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写。L指Linux,N指Nginx,M一般指MySQL,也可以指MariaDB,P一般指PHP。
Docker的三个概念
镜像(Image):类似于虚拟机中的镜像,是一个包含有文件系统的面向Docker引擎的只读模板。任何应用程序运行都需要环境,而镜像就是用来提供这种运行环境的。
容器(Container):类似于一个轻量级的沙盒,可以将其看作一个极简的Linux系统环境,以及运行在其中的应用程序。Docker引擎利用容器来运行、隔离各个应用。容器是镜像创建的应...
scoop的安装和使用
scoop的安装和使用
安装
首先是scoop的安装,在那之前需要确认一下自己电脑的环境是否符合下列要求:
1、Windows版本不低于windows 7
2、Windows中的 Powershell 版本不低于 Powershell 3
3、能正常快速访问github并下载上面的资源
4、用户名为英文
前两个条件现在应该基本都没什么问题,第三个白嫖使用校园网便可以,第四个,嗯中文名的话趁早重装系统改成英文。
然后进入微软官网下载.NET ,最后进入powershell,先运行以下命令:
Set-ExecutionPolicy RemoteSigned -scope CurrentUser
然后运行下面的命令:
iwr -useb get.scoop.sh | ...
范围求和Ⅱ
范围求和Ⅱ
这个题目思路感觉比较简单,只需要返回最大数字的个数;这里的operation较为单纯,可以理解为在m*n矩形中画小矩形,通过以下丑图不难看出阴影部分的数字是最大的数。
而最大数的个数则是阴影部分右下角的横纵坐标之积,接着便是考虑如何得到这个横纵坐标,注意到该横纵坐标均是操作数中最小的,因此只需要找出横纵坐标最小的数即可。具体代码如下:
int maxCount(int m,int n,int** ops,int opsSize,int* opsColSize)
{
int i,len=m,wid=n;
for(i=0;i<opsSize;i++)
{
if(ops[i][0]<len)
{
...
罗马数字转整数
罗马数字转整数
嗯,这是力扣上的一道”easy”题,拿到手来一看卧槽这啥玩意儿,不过仔细分析了一下发现这道题也不是完全不能动手。先是观察罗马数字,可以知道每一个字符对应一个数,需要注意的是I,X,C放在左右两边不同的处理。
倘若我们先忽略I,X,C放左右的差别,不考虑太多只建立程序的基本框架,思路便可以比较清晰,首先设一个sum变量作为整数的结果并初始化为0,开一个字符串读入并对其遍历,采用switch-case语句不同的字符给sum加上其对应的值。这样一个大体的程序框架就出来了,然后考虑I,X,C的左右问题,注意到它们放在右边仍然是加上其对应的值,而放在左边则是减去其对应的值,所以只要加一个判断语句,判断它在左边还是右边,在左边让sum减去其对应的值,在右边则加上其对应的值。
...