字符串是用引号包裹的,表示语言文字。
用双引号包裹的都是字符串
console.log(typeof 5); // numberconsole.log(typeof 5); // String注意:变量不能包裹在双引号里
<!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8> <meta http-equiv=X-UA-Compatible content=IE=edge> <meta name=viewport content=width=device-width, initial-scale=1.0> <title>Document</title> </head> <body> <script> console.log(typeof 5); // number console.log(typeof 5); // String var a = 10; console.log(a); //输出字母a </script> </body> </html>
输出
布尔类型
true和false
注意都是小写
console.log(4 > 3);console.log(8 > 13);
将第三库分割成多个文件 利用浏览器缓存 HTTP2 并发数量没有限制 使用SplitChunksPlugin进行手工分割 optimization.splitChunks https://webpack.docschina.org/plugins/split-chunks-plugin/ splitChunks=[ maxInitialRequest:Infinity, maxSize:0, chunks:'all', cacheGroups:{ antVendor:{ name :'ant-design', test:/[\\/]node_modules[\\/](ant-design-vue)[\\/]/, }, vendor:{ name :'vendor', test:/[\\/]node_modules[\\/](!ant-design-vue)[\\/]/, } } ] 根据文件大小自动分割 splitChunks=[ maxInitialRequest:Infinity, maxSize:300*1024, chunks:'all', cacheGroups:{ antVendor:{ test:/[\\/]node_modules[\\/]/, name(module):{ const packageName=module.context.match(/[\\/]node_modules[\\/](.*?)([\\/]|$)/)[1] return `npm.{packageName.replace('@','')` } } } ]
主要目的减小包文件的大小 使用工具webpack-bundle-analyzer 可以作为webpack plugins使用 const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; module.exports = { plugins: [ new BundleAnalyzerPlugin() ] } 借助这个plugin,webpack之后会自动生成report.html 文件 可以作为cli命令进行使用 优化目标:大的模块 dependencies 是否存在没有必要的模块 查看package.json 文件的dependencies 节点是否存在没有必有包 开发时要注意debDependencies和dependencies的合理使用 是否存在重复的包 功能相同包名不同比如:loadash 和loadash-es,使用**es可以享受tree-shaking的红利 是否存在其他没有必要的模块 比如使用ant.design前端框架控件的时候会引入moment.js 解决办法,使用IgnorePlugin new webpack.IgnorePlugin({ resourceRegExp: /^\.\/locale$/, contextRegExp: /moment$/, }); https://webpack.js.org/plugins/ignore-plugin/
第三方UI控件按需加载 例如我们在使用ant.design控件尽量不要将整个包引入 创建控件引入组件库文件,按需import
目录Magisk 系列教程 (基于 v24.3)什么是Magisk ?Magisk 中的组件如何安装 Magisk如何升级 Magisk什么是 Magisk Module什么是 Magisk Zygisk如何开启 ZygiskMagisk v24+ 已经不再提供 Hide; 现阶段的替代方案Riru Module 已经停止维护; 迁移 Riru Module 到 Zygisk Module
Magisk 系列教程 (基于 v24.3) 什么是Magisk ? Magisk 是 Android OS 下的一套完整的 Super User 解决方案 Magisk 支持 Android 5.0 以上的设备 Magisk 中的组件 MagiskSu: 为应用程序提供 root 访问权限 MagiskBoot: Android 下的 镜像文件工具 Zygisk: Magisk 提供的 zygote process 注入器 MagiskManager: Magisk 的管理器, 也是用户操作的接口 如何安装 Magisk 必要条件: 一台电脑
Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right, which minimizes the sum of all numbers along its path.
Note: You can only move either down or right at any point in time.
Solution 很显然的DP:
\[dp[i][j] =\min(dp[i-1][j],dp[i][j-1] )+g[i][j] \]
点击查看代码 class Solution { public: int minPathSum(vector<vector<int>>& grid) { int dp[202][202]; int n = grid.size(), m = grid[0].size(); if(n==1 && m==1){return grid[0][0];} else{ dp[0][0] = grid[0][0]; for(int i=1;i<n;i++)dp[i][0]=dp[i-1][0]+grid[i][0]; for(int i=1;i<m;i++)dp[0][i]=dp[0][i-1]+grid[0][i]; for(int i=1;i<n;i++){ for(int j=1;j<m;j++){ dp[i][j] = min(dp[i][j-1]+grid[i][j],dp[i-1][j]+grid[i][j]); } } } return dp[n-1][m-1]; } };
网络空间搜索引擎(OSINT Open source intelligence)
可以查找物联网所有硬件设备和软件程序。
如何扫描:
使用网络扫描工具:namp/zmap
方式:IP库/枚举
如何识别一个设备:
爬虫-url/ip-域名/开放端口/操作系统/物理地址/MAC地址/设别类型/
实时威胁地图:
https://www.fireeye.com/cyber-map/threat-map.html(黑客看不上公开信息)
世界上最早空间搜索引擎(Shodan,2009)
淘宝购买学术会员可使用付费功能
官网:https://www.shodan.io/
When people don't see stuff on Google,they think no one can find it.That's not true. ----John Matherly (Shodan 创始人:约翰·玛瑟利)
当人们在谷歌上看不到东西时,他们认为没人能找到它。那不是真的。
Kali内置Shodan相关命令:
shodan -h 帮助文档
alert Manage the network alerts for your account 管理账号的网络提示
convert Convert the given input data file into a.. 转换输入文件
count Returns the numbeet of results for a search 但会查询结果数量
问题描述:编号为 1-N 的 N 个士兵围坐在一起形成一个圆圈,从编号为 1 的士兵开始依次报数(1,2,3…这样依次报),数到 m 的 士兵会被杀死出列,之后的士兵再从 1 开始报数。直到最后剩下一士兵,求这个士兵的编号。
C# 代码
方法 :递归
优点:代码少
缺点:效率低,堆栈会溢出
其实这道题还可以用递归来解决,递归是思路是 每次我们删除了某一个士兵之后,我们就对这些士兵重新编号,然后我们的难点就是找出删除前和删除后士兵编号的映射关系 。
我们定义递归函数 f(n,m) 的返回结果是存活士兵的编号,显然当 n = 1 时,f(n, m) = 1。假如我们能够找出 f(n,m) 和 f(n-1,m) 之间的关系的话,我们就可以用递归的方式来解决了。我们假设人员数为 n, 报数到 m 的人就自杀。则刚开始的编号为
本文由 帅地玩编程(www.iamshuaidi.com) 辛苦整理,可以拿去当作本地笔记,但请勿抄袭发布在自家网站或者博客引流,否则必追究(原文来自:https://www.iamshuaidi.com/145.html) 本文由 帅地玩编程(www.iamshuaidi.com) 辛苦整理,可以拿去当作本地笔记,但请勿抄袭发布在自家网站或者博客引流,否则必追究(原文来自:https://www.iamshuaidi.com/145.html) 本文由 帅地玩编程(www.iamshuaidi.com) 辛苦整理,可以拿去当作本地笔记,但请勿抄袭发布在自家网站或者博客引流,否则必追究(原文来自:https://www.iamshuaidi.com/145.html) public class Sample { public static void Main() { Console.WriteLine(JosephRing(8,1,3)); } public static int JosephRing(int Num, int start,int step) { return Num==1?
Java this 关键字 this 指对象本身,只能在类中使用。
有Python基础的理解为self就行了。
作用 可以访问本类的属性、方法、构造器 区分当前类属性和局部变量 访问属性 class ... { public static void main (String[] args) { Person mike = new Person(Mike, (byte)18, 85.6); } } class Person { this.name; this.age; this.higth; // 构造器 public Person (String name, byte age, double higth) { this.name = name; this.age = age; this.higth = higth; } } this指向的就是调用它的对象的内存地址
在构造器中使用this.name = name 你可以理解为mike.name = name
变量名mike也是指向对象的内存地址,而this是哪个对象调用它,它就指向那个对象的内存地址,也可以说this就是对象本身。
查看哈希Code值 每个对象的hashCode值,都是唯一的,如果hashCode值一样,说明是同一个对象
初始化 - beforeCreate & created 注意:beforeCreate & created 并没有渲染 DOM,不能够访问 DOM。如果组件在加载的时候需要和后端有交互,如果是需要访问 props、data 等数据的话,就需要使用 created 钩子函数。
/** * * vue2.6.X源码地址src/core/instance/init.js * beforeCreate 和 created 函数都是在实例化 Vue 的阶段,在 _init 方法中执行的。 * **/ Vue.prototype._init = function (options?: Object) { vm._self = vm initLifecycle(vm) // 初始化生命周期相关的属性、相关属性赋值 initEvents(vm) // 初始化事件队列以及监听器 // 通过defineProperty的set去notify()通知subscribers有值被修改,并执行watchers的update函数 // attrs/$listeners的响应化 initRender(vm) callHook(vm, 'beforeCreate') initInjections(vm) // resolve injections before data/props initState(vm) // initState 的作用是初始化 props、data、methods、watch、computed 等属性 initProvide(vm) // resolve provide after data/props callHook(vm, 'created') } beforeCreate() { this.
NC14683 储物点距离 题目 题目描述
一个数轴,每一个储物点会有一些东西,同时它们之间存在距离。 每次给个区间 \([l,r]\) ,查询把这个区间内所有储物点的东西运到另外一个储物点的代价是多少? 比如储物点 \(i\) 有 \(x\) 个东西,要运到储物点 \(j\) ,代价为 \(x \cdot dist( i , j )\) \(dist\) 就是储物点间的距离。
输入描述
第一行两个数表示 \(n\) , \(m\)第二行 \(n-1\) 个数,第i个数表示第 \(i\) 个储物点与第 \(i+1\) 个储物点的距离 \(a_i\) 第三行 \(n\) 个数,表示每个储物点的东西个数 \(b_i\) 之后 \(m\) 行每行三个数 \(x\) , \(l\) , \(r\)。 表示查询要把区间 \([l,r]\) 储物点的物品全部运到储物点 \(x\) 的花费 每次查询独立
输出描述
对于每个询问输出一个数表示答案 答案对 \(1000000007\) 取模
示例1
输入
5 5 2 3 4 5 1 2 3 4 5 1 1 5 3 1 5 2 3 3 3 3 3 1 5 5 输出