为了转行程序员而努力的第四十四天-二叉树,MAC系统virtual box无法启动问题

今天提前醒了,但是因为太冷了,也没起来,挨到上班时间才起床。中午下雪了,冒着大雪去了银行,还算比较顺利,只是额度没有了,购买看好的结构性存款要等明天了。自从开始学习项目类课程以来,深深地体会到了软件开发的博大精深,现在刷题也不再那么恐惧了,因为想想还有虚拟机配置,各种Linux语句这样更让我觉得陌生恐惧的事情,好歹刷题是有题解的,多看几个总有能看懂的,有的报错甚至不知道去哪里搜索答案,这么一想,刷题的时候反而精神放松了。

由于上班的时候没有办法配置环境,只能先利用空闲时间学习Linux的基本操作,下班回去之后再在电脑上实现,可能进度比较缓慢,但是每天前进一点,把发现的问题报错都记录下来,也是很有收获的。

今日进度:
1.抽时间去银行重新授权了,至少现在在手机上就可以尝试理财了
2.想清楚了积极的态度对于实现远大目标的重要性,有时候恰恰是害怕努力之后无法实现目标这样消极的态度本身,导致了最终走向不好的结局,抱着积极正向的态度,每一天都为实现目标而努力一点点,万一有一天真的实现了呢
3.坚持听网课,坚持刷题
4.坚持锻炼,发现一个强度比较高的3分钟瘦肚子训练,非常适合每天坚持做,也不会花太多时间,正好可以和肩颈锻炼组合起来
5.坚持录小王子,今天说什么也要录一篇了,否则都快忘记有这回事了
6.配置环境的时候发现了一个bug解决了,虽然整体相当于还没开始,但还是有收获

学习笔记:
1.Linux文件类型,第一个符号(-文件,d目录,l软链接文件)
为了转行程序员而努力的第四十四天-二叉树,MAC系统virtual box无法启动问题_第1张图片
2.chmod u+x 文件名赋予权限
chmod u=rwx 文件名,不用获取之前的权限,直接赋予权限
为了转行程序员而努力的第四十四天-二叉树,MAC系统virtual box无法启动问题_第2张图片
chmod 755 文件名
3.权限对文件的作用
r:读取文件内容,cat,more,head,tail
w:编辑,新增,修改文件内容(vi,echo),不包括删除文件
x:可执行
4.权限对目录的作用
r:可以查询目录下文件名(ls)
w:修改目录的权限,如新建,删除,重命名,剪切(touch,rm,mv,cp)
x:可以进入目录(cd)
5.对文件,最高权限是x;对目录,最高权限是w
6.MAC系统virtual box无法启动

Kernel driver not installed (rc=-1908)
Make sure the kernel module has been loaded successfully.
where: suplibOsInit what: 3 VERR_VM_DRIVER_NOT_INSTALLED (-1908) - The
support driver is not installed. On linux, open returned ENOENT.
为了转行程序员而努力的第四十四天-二叉树,MAC系统virtual box无法启动问题_第3张图片
是由Mac系统升级导致的,需要卸载virtual box再重新安装,安装时需设置安全与隐私-通用
为了转行程序员而努力的第四十四天-二叉树,MAC系统virtual box无法启动问题_第4张图片
点击仍要打开,虚拟机就可以正常启动了。
7.112. 路径总和
给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。
叶子节点 是指没有子节点的节点。
输入:root = [5,4,8,11,null,13,4,7,2,null,null,null,1], targetSum = 22
输出:true
解释:等于目标和的根节点到叶节点路径如上图所示。

解题思路:从上往下的递归,分别顺着左子树与右子树往下走,没经过一个节点,用target减去当前的值,直到叶子节点等于target,就找到了。

/**
 * 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 boolean hasPathSum(TreeNode root, int targetSum) {
        if(root == null){
            return false;
        }
        if(root.left==null && root.right==null){
            return root.val==targetSum;
        }
        return hasPathSum(root.left, targetSum-root.val) || hasPathSum(root.right, targetSum-root.val);
    }
}

8.404. 左叶子之和
计算给定二叉树的所有左叶子之和。

3
/ |
9 20
/ |
15 7
在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24

解题思路:如果左节点为叶子节点,sum直接加上,否则加上对左节点进行递归找出左节点左叶子的和;如果右节点不为叶子节点,sum加上对右节点进行递归找出右节点左叶子的和

/**
 * 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 int sumOfLeftLeaves(TreeNode root) {
        if(root==null){
            return 0;
        }
        else{
            return sumOfL(root);
        }
    } 
    public int sumOfL(TreeNode root){
        int s = 0;
        if(root.left!=null){
            s += isLeaf(root.left) ? root.left.val : sumOfL(root.left);
        }
        if(root.right!=null && !isLeaf(root.right)){
            s += sumOfL(root.right);
        }
        return s;
    }
    public boolean isLeaf(TreeNode root){
        if(root.left==null && root.right==null){
            return true;
        }
        else{
            return false;
        }
    }
}

明天继续配置centOS,明天继续更新。

你可能感兴趣的:(转行刷题项目记录,macos,linux,java)