今天在配置上花的时间太多,主要怕进行到一半,明天就要从头开始,以至于都没有太多时间总结了,锻炼的时间也被挤掉了,争取明天早起来补上。就不多感慨了,直接进入正题。
今日进度:
1.坚持刷题,坚持听网课,感觉二叉树也是必重刷的,就算是刚做完的题,过几个小时再看,就不知道该怎么做了
2.坚持锻炼,明天早起补上
3.坚持早睡
4.坚持记录
学习笔记:
Java:
1.Java面向对象设计 - Java导入,导入声明用于将任何类型导入编译单元。导入声明出现在包声明之后,第一个类型声明之前。有两种类型的导入声明:单类型导入声明,按需导入声明
单类型导入声明
import com.w3cschool.Dog; // Import the Dog class
按需导入声明
import com.w3cschool.*;
2.系统是java.lang包中的一个类,它有一个名为out的静态变量。
当你使用System.out时,我们指的是System类中的静态变量。
我们可以使用静态导入声明从System类导入out静态变量,如下所示:
import static java.lang.System.out;
3.Java 中为解决变量的命名冲突和不确定性问题,引入关键字 this 代表其所在方法的当前对象的引用:构造方法中指该构造器所创建的新对象;方法中指调用该方法的对象;在类本身的方法或构造器中引用该类的实例变量(全局变量)和方法。
this 只能用在构造器或者方法中,用于获得调用当前的构造器方法的对象引用。可以和任何的对象引用一样来处理这个this对象。
Linux:
1.Linux系统中文件或目录的属性
第一列:inode索引节点
第二列:文件类型及权限
第三列:硬链接个数
第四列:文件或目录所属的用户(属主)
第五列:文件或目录所属的用户所归属的组;
第六列:文件或目录的大小;
第七列、八、九列:文件或目录的修改时间
第十列:实际的文件名或目录名
[root@localhost oldboy]# ls -lhi oldboy
810407 -rw-r--r-- 1 root root 12 May 1 05:05 oldboy
Inode索引节点编号:810407
文件类型:文件类型是-,表示这是一个普通文件;
文件权限:文件权限是rw-r–r--,表示文件属主可读可写;文件所属的用户组可读;其他用户可读;
硬链接个数:表示oldboy这个文件没有其他的硬链接;因为链接数是1,就是他本身;
文件属主:这个文件所属的用户,这里意思是oldboy文件被root拥有,是第一个root;
文件属组:这个文件所属的用户组,在这里是root用户组,是第二个root;
文件大小:文件大小是12个字节;
文件修改时间:这里的时间是该文件的最后被更新(包括文件创建、内容更新、文件名更新等),可用如下命令查看文件的修改,访问,创建的时间。
2.inode值相同的文件,可以把他们的关系看作互为硬链接的关系。当我们修改其中一个文件的内容时,互为硬链接的文件的内容也会跟着变化。
3.Linux文件或目录的权限位是9个权限位来控制,每三位为一组,他们分别是文件属主(Owner)的读写执行,用户组(group)的读写执行以及(Other)其他用户的读写执行。
4.Linux常用命令
可用 pwd命令查看用户的当前目录
可用 cd 命令来切换目录
.表示当前目录
… 表示当前目录的上一级目录(父目录)
-表示用 cd 命令切换目录前所在的目录
~ 表示用户主目录的绝对路径名
ls:显示文件或目录信息
mkdir:当前目录下创建一个空目录
rmdir:要求目录为空
touch:生成一个空文件或更改文件的时间
cp:复制文件或目录
mv:移动文件或目录、文件或目录改名
rm:删除文件或目录
ln:建立链接文件
find:查找文件
file/stat:查看文件类型或文件属性信息
cat:查看文本文件内容
more:可以分页看
less:不仅可以分页,还可以方便地搜索,回翻等操作
tail -10: 查看文件的尾部的10行
head -20:查看文件的头部20行
echo:把内容重定向到指定的文件中 ,有则打开,无则创建
管道命令 | :将前面的结果给后面的命令,重定向 > 是覆盖模式,>> 是追加模式,把左边的输出放到右边的文件里去
stat 显示指定文件的详细信息,比ls更详细
who 显示在线登陆用户
whoami 显示当前操作用户
hostname 显示主机名
uname 显示系统信息
top 动态显示当前耗费资源最多进程信息
ps 显示瞬间进程状态 ps -aux
du 查看目录大小 du -h /home带有单位显示目录信息
df 查看磁盘大小 df -h 带有单位显示磁盘信息
ifconfig 查看网络情况
ping 测试网络连通
netstat 显示网络状态信息
man 用户帮助手册,clear 清屏
alias 对命令重命名 如:alias showmeit=“ps -aux” ,另外解除使用unaliax showmeit
kill 杀死进程,可以先用ps 或 top命令查看进程的id,然后再用kill命令杀死进程。
5.chown改变所有者,chown 用户名 文件名;chgrp 组名 文件名
刷题:
1.257. 二叉树的所有路径
给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。
叶子节点 是指没有子节点的节点。
输入:root = [1,2,3,null,5]
输出:[“1->2->5”,“1->3”]
解题思路:使用递归分别找出左子树和右子树的所有路径,存在list里,再将当前的root值使用"->"与list中的所有路径相连。
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
class Solution {
public List<String> binaryTreePaths(TreeNode root) {
List<String> res = new ArrayList<String>();
if(root==null){
return res;
}
if(root.left==null && root.right==null){
res.add(String.valueOf(root.val));
return res;
}
List<String> leftS = binaryTreePaths(root.left);
for(int i=0; i<leftS.size(); i++){
res.add(root.val+"->"+leftS.get(i));
}
List<String> rightS = binaryTreePaths(root.right);
for(int i=0; i<rightS.size(); i++){
res.add(root.val+"->"+rightS.get(i));
}
return res;
}
}
2.113. 路径总和 II
给你二叉树的根节点 root 和一个整数目标和 targetSum ,找出所有 从根节点到叶子节点 路径总和等于给定目标和的路径。
叶子节点 是指没有子节点的节点。
输入:root = [5,4,8,11,null,13,4,7,2,null,null,5,1], targetSum = 22
输出:[[5,4,11,2],[5,8,4,5]]
提示:
树中节点总数在范围 [0, 5000] 内
-1000 <= Node.val <= 1000
-1000 <= targetSum <= 1000
解题思路:使用一个deque将路径存储起来,每经过一个节点,就用sumtarget的值减去当前节点的值,如果suntarget等于0,说明找到了目标路径,将该路径加入返回list。查找完一条路径之后,将deque里的最后一个元素弹出,返回上个节点继续查找新的路径。注意deque的push与pop是从开头插入和从开头取出,所以这里使用了offerLast和pollLast。
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
class Solution {
List<List<Integer>> res = new LinkedList<List<Integer>>();
Deque<Integer> path = new LinkedList<Integer>();
public List<List<Integer>> pathSum(TreeNode root, int targetSum) {
dfs(root, targetSum);
return res;
}
public void dfs(TreeNode root, int targetSum){
if(root==null){
return;
}
path.offerLast(root.val);
targetSum -= root.val;
if(root.left==null && root.right==null && targetSum==0){
res.add(new LinkedList<Integer>(path));
}
dfs(root.left, targetSum);
dfs(root.right, targetSum);
path.pollLast();
}
}
环境配置:
1.centOS无法连接到互联网,解决方法:
(1)以root登录cent OS
(2)运行vi /etc/sysconfig/network-scripts/ifcfg-eth0,修改文件内容
(3)BOOTPROTO=dhcp, ONBOOT=yes
(4)service network restart重启网络
(5)可以ping www.baidu.com或者浏览器打开百度检验
2.centOS与MACping不通:
(1)关闭虚拟机,在虚拟机设置网卡二为桥接网卡
(2)在centOS里使用ifconfig查找IP地址,注意与主机相连的地址为eth1的IP地址
(3)主机使用ssh 用户名@IP地址,输入密码,即可远程登录centOS
3.阿里云源配置yum makecache报错
解决办法,原地址失效,需更改地址,参考了一篇博文
cd /etc/yum.repos.d
rm -rf *
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-6.repo sed -i
‘s/$releasever/7/’ /etc/yum.repos.d/CentOS-Base.repo sed -i
‘s#$basearch#x86_64#g’ /etc/yum.repos.d/CentOS-Base.repo
yum clean all
&& yum makecache
原文链接:https://blog.csdn.net/qq_31991629/article/details/110658110
总算是把配置的第一步完成了,后面还有一些选看的配置,明天终于可以开始看了,二叉树的递归方法也是,思考的难度还是比较大的,但也不要太紧张,以放松的心情去享受它吧。明天继续更新。