数据结构
集合集合继承体系
Collection接口: 单列集合,用来存储一个一个的对象
Map接口:双列集合,用来存储一-对(key - volue) 一对的数据
集合与数组区别集合、数组都是对多个数据进行存储操作的结构,简称Java容器。
说明:此时的存储,主要指的是内存层面的存储,不涉及到持久化的存储(. txt,.jpg,.avi,数据库中)
数组
数组存储的特点
一旦初始化以后,其长度就确定了
数组一-旦定义好,其元素的类型也就确定了。我们也就只能操作指定类型的数据了。
比如: String[] arr;int[] arr1;object[] arr2;
数组存储的弊端:
一旦初始化以后, 其长度就不可修改。
数组中提供的方法非常限,对于添加、删除、插入数据等操作,非常不便,同时效率不高。
获取数组中实际元素的个数的需求,数组没有现成的属性或方法可用
数组存储数据的特点:有序、可重复。对于无序、不可重复的需求,不能满足。
集合解决数组存储数据方面的弊端。
初始化集合
add
12345List<String> languages = new ArrayList ...
Hexo
Hexo 的创建和部署Hexo 的创建和部署根据【2021最新版】保姆级Hexo+github搭建个人博客_哔哩哔哩_bilibili进行操作
更加关于Hexo详细的可以参考新建标签页 (tcloudbaseapp.com)
hexo n "我的博客" == hexo new "我的博客" #新建文章hexo p == hexo publishhexo g == hexo generate#生成静态网页hexo s == hexo server #启动服务预览hexo d == hexo deploy#开始部署
hexo g 操作会在 /Blog下产生一个public文件,而 hexo clear 后 该public文件就会消失
/Blog/deploy_git 目录下的文件 就是github仓库的文件,可以在该目录下 git bash 进行添加文件
更换主题安装主题
更换主题可参考hexo博客换主题 - 知乎 (zhihu.com)
实际更换主题时可根据 主题官方 的提示要求下进行操作
https://gitee.com/immyw/hexo- ...
Typora
快捷键
源码模式
ctrl + /
开发者模式
shift + f12
目录
ctrl + shift + 1
样式更改
样式更改
打开开发者模式 找到对应的代码位置, 点击4,进入配置文件中,找到对应的行,更改即可。
字体颜色
先在设置中打开内联模式
$\textcolor{RedOrange}{RedOrange} $$\textcolor{Mahogany}{Mahogany}$$\textcolor{Maroon}{Maroon} $$\textcolor{BrickRed}{BrickRed}$$\textcolor{Red}{Red} $
$\textcolor{RubineRed}{RubineRed}$$\textcolor{WildStrawberry}{WildStrawberry}$
$\textcolor{Magenta}{Magenta} $$\textcolor{VioletRed}{VioletRed}$$\textcolor{Rhodamine}{Rhodamine} $$\textcolor{Mulberry}{Mulberry} ...
node.js版本管理
node.js版本管理不同项目需要不同版本的Node, 可以安装nvm工具 进行node版本的管理。
下载nvmgithub下载地址:
Releases · coreybutler/nvm-windows (github.com)
下载nvm-setup.zip,nvm 和 Node.js 的放置位置要选择不同的文件夹。
1234nvm-noinstall.zip: 这个是绿色版本,不需要安装,但是使用之前需要配置环境变量;nvm-setup.zip:推荐下载这个包,无需配置就可以使用;Source code(zip):zip 压缩的源码;Sourc code(tar.gz):tar.gz 的源码,一般用于 *nix 系统。
相关命令
查看已安装的node版本
1nvm list
安装node最新版本
1nvm install latest
安装的node指定版本
1nvm install 16.14.2(要安装的版本号)
切换node版本
1nvm use 16.14.2(要切换的版本号)
删除node版本
1nvm unins ...
哈希表
242. 有效的字母异位词https://leetcode.cn/problems/valid-anagram/description/
使用数组实现哈希表
123456789101112class Solution { public boolean isAnagram(String s, String t) { if(s.length() != t.length()) return false; int[] arr = new int[26]; for(char i : s.toCharArray()) arr[i - 'a']++; for(char i : t.toCharArray()) arr[i - 'a']--; for(int i : arr) if(i != 0) return false; return true; }}
栈
单调栈654.最大二叉树https://leetcode.cn/problems/maximum-binary-tree/description/
123456789101112131415161718class Solution { public TreeNode constructMaximumBinaryTree(int[] nums) { Deque<TreeNode> stack = new LinkedList<>(); for(int n : nums) { TreeNode node = new TreeNode(n); // 如果当前节点比栈顶节点(数组左边的数)大,那么就将栈顶的节点作为当前节点的左节点,并且将栈顶的节点移出,直到栈为空或者小于栈顶节点 while(!stack.isEmpty() && n > stack.peek().val) node.left = stack.pop() ...
深度搜索
组合77. 组合https://leetcode.cn/problems/combinations/
for循环 i确定开头(第一层)的数字 循环里面进行递归 确定第二层的数字 当遍历到第k层 就结束使用tag标记下一层的开头数字
使用公式 n-i+1 + list.size() >= k 进行减枝n-i+1 表示剩下可选的数字 ,list.size() 表示当前已选择的数,加起来不能小于 k
12345678910111213141516171819202122class Solution { List<Integer> list = new ArrayList<>(); List<List<Integer>> res = new ArrayList<>(); public List<List<Integer>> combine(int n, int k) { dfs(n, k, 1); return res; ...