depth相关知识
-
leetcode 104. Maximum Depth of Binary TreeGiven a binary tree, find its maximum depth. The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node. public class Solution { public int maxDepth(TreeNode root) { int depth = 0; if(root != null){ int leftDepth = maxDepth(root.left); int rightDepth = maxDepth(root.right); depth ++; if(leftDepth < rightDepth){ depth = depth + rightDepth; }else{ depth = depth + leftDepth; } } return depth; } }
-
Single Depth peeling 顺序无关渲染(OIT)**什么是顺序无关渲染**在3D渲染中,物体的渲染是按一定的顺序渲染的,这也就可能导致半透明的物体先于不透明的物体渲染,结果就是可能出现半透明物体后的物体由于深度遮挡而没有渲染出来。对于这种情况通常会先渲染所有的不透明物体再渲染半透明物体或者按深度进行排序来解决。但这样仍然无法解决半透明物体之间的透明效果渲染错误问题,特别是物体之间存在交叉无法通过简单的排序来解决。于是就有一些用专门来解决半透明物体渲染算法,OIT算法即Order Independent Transparency(顺序无关的半透明渲染)。Depth Peeling是众多OIT算法里可以得到精确blending结果的一个,在非游戏的3d应用场景中应该还是很有价值的。 两个交叉半透明四边形(未使用OIT渲染) 两个交叉半透明四边形(使用OIT渲染)**Single Depth Peeling原理**Single Depth Peeling 顾名思义,就是通过多次绘制,每次绘制剥离离相机最靠
-
React入门:项目实践Gallery-in-Reactyeoman 现代web app开发,著名的脚手架工具yeoman,在web项目立项的阶段,用yeoman生成项目文件、代码结构。yeoman自动将最佳实践和工具整合进来,大大加速和方便了后续的开发。 npm install -g yo //安装yeoman工具,需要nodejs环境 yo --version //查看yeoman版本 npm install -g generator-react-webpack //安装React的项目生成器 npm ls -g --depth=1 2>/dev/null | grep generator- //查看项目生成器版本 //-g是指查看全局的安装包,--depth 因为安装包是有树形
-
jenkins导致磁盘占满问题背景 今天登陆jenkins提示磁盘空间不足,且构建发生错误 排查问题 cd到jenkins 安装目录 执行df -h 发现root目录沾满 执行 du -ah --max-depth=1 发现是.jenkins 目录占用的 逐渐cd 进去,并执行 du -ah --max-depth=1 最终发现是jobs目录占用过大 手动删除其中的构建历史 异常恢复 优化解决 jenkins在创建构建项目的时候,直接设置好构建历史保留天数等,见下图 </center>
depth相关课程
depth相关教程
- 2. 二叉树深度 面试官提问:给定一个二叉树根节点,如何求解这棵二叉树最大深度?题目解析:求解二叉树深度问题是来源于算法网站LeetCode的经典题目,题目链接:https://leetcode.com/problems/maximum-depth-of-binary-tree/。首先给出二叉树最大深度的定义:二叉树从根节点到所有叶子节点的最长一条路径。例如下图的二叉树,最大深度路径就是3 -> 20 -> 16以及3 -> 20 -> 8,所以最大深度为2。二叉树结构求解二叉树问题的通用解法是递归算法,使用递归需要满足三个条件:(1)初始问题可以拆分为多个子问题;(2)子问题除了数据量不同,求解思路和初始问题相同;(3)必须存在递归终止条件。递归算法的优势是代码简洁,在面试过程中白板编程能容易实现 bug free,所以比较推荐候选人尽量采用递归。二叉树自身的数据结构也可以通过递归实现,对于根节点以及任何一个中间节点,本质上都是存在两个左右子树指针(叶子节点的子树存在,但为空)。回到题目,对于任何一个节点,如果我们知道左右子树的深度,那么左右子树深度的最大值加一,就是当前节点的深度,这就是子问题的通用解法。最后,确定递归终止条件:如果我们遍历到了空节点,那么停止搜索,算法的 Java 实现,示例:class Solution { public int maxDepth(TreeNode root) { //主函数入口 int depth=0; depth=calDepth(root, depth); return depth; } public int calDepth(TreeNode node, int depth){ //递归终止条件:如果到了空节点,直接返回深度 if(node==null) return depth; //深度+1 depth++; //返回左右子树的最大深度 return Math.max(calDepth(node.left, depth), calDepth(node.right,depth)); }}从本题中我们可以抽象得到二叉树问题的常见通用解决方案。二叉树递归本质上属于深度优先搜索算法,我们定义深度优先搜索的 DFS函数,在 DFS 中首先要给出递归终止条件,常见的终止条件是二叉树的叶子节点或者空节点,其次是对于函数入参根节点的左子树和右子树调用函数,在不同函数之间定义 counter 记录结果值或者中间变量值。算法的伪代码,示例:public void Solution(TreeNode root){ //调用递归函数 dfs(root,counter);}public Object dfs(TreeNode root, Object counter){ //1. 递归终止判断 if(...) ... //2. 递归调用 dfs(root.left, counter_1); dfs(root.right, counter_2); ...}
- 3.1 语法使用 使用 flat() 方法会接收一个参数,这个参数是数值类型,是要处理扁平化数组的深度,生成后的新数组是独立存在的,不会对原数组产生影响。由此我们也可以使用它深拷贝一个数组,下文我们会用一个案例说明。语法使用:var newArray = arr.flat([depth])参数解释:参数描述depth指定要提取嵌套数组结构的深度,默认值为 1
- 4.1 如何捕获堆转储 要捕获堆转储,请点击 Memory Profiler 工具栏中的 Dump Java heap 图标。 在转储堆期间,Java 内存量可能会暂时增加。 这很正常,因为堆转储与我们的应用发生在同一进程中,并需要一些内存来收集数据。堆转储出现在内存时间轴下方,显示堆中的所有类类型,如下图所示。在类列表中,我们可以查看以下信息:Allocations:堆中的分配数;Native Size:此对象类型使用的原生内存总量(以字节为单位)。只有在使用 Android 7.0 及更高版本时,才会看到此列;Shallow Size:此对象类型使用的 Java 内存总量(以字节为单位);Retained Size:为此类的所有实例而保留的内存总大小(以字节为单位);点击一个类名称可在右侧打开 Instance View 窗口。列出的每个实例都包含以下信息:Depth:从任意 GC 根到选定实例的最短跳数;Native Size:原生内存中此实例的大小。 只有在使用 Android 7.0 及更高版本时,才会看到此列;Shallow Size:Java 内存中此实例的大小;Retained Size:此实例所支配内存的大小;要检查应用的堆,请按以下步骤操作:浏览列表以查找堆计数异常大且可能存在泄露的对象。为帮助查找已知类,点击 Class Name 列标题以按字母顺序排序。然后,点击一个类名称。此时右侧将出现 Instance View 窗格,显示该类的每个实例;在 Instance View 窗格中,点击一个实例。此时下方将出现 References 标签页,显示对该对象的每个引用;在 References 标签页中,如果我们发现某个引用可能在泄露内存,请右键点击它并选择 Go to Instance。这样会从堆转储中选择相应的实例,从而向我们显示它自己的实例数据。
- 3. find 简介:顾名思义,就是用来在系统中查找文件的工具,可以指定一个基础起始目录,根据不同的选项查找不同的文件。语法:find path -option [ -print ] [ -exec -ok command ] {} \;原理:find 根据option在指定的系统路径中查找文件,如果查找到与对应的exec命令,则执行对应的command。print: find 命令将匹配的文件输出到标准输出;exec: find 命令对匹配的文件执行该参数所给出的 shell 命令。相应命令的形式为 ‘command’ {} ;,注意 {} 和 \;之间的空格;ok: 和 - exec 的作用相同,只不过以一种更为安全的模式来执行该参数所给出的 shell 命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行;选项说明:- -name filename #查找名为 filename 的文件- -perm #按执行权限来查找- -user username #按文件属主来查找- -group groupname #按组来查找- -mtime -n +n #按文件更改时间来查找文件,-n 指 n 天以内,+n 指 n 天以前- -atime -n +n #按文件访问时间来查 GIN: 0px">- -ctime -n +n #按文件创建时间来查找文件,-n 指 n 天以内,+n 指 n 天以前- -type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件- -size n [c] #查长度为 n 块 [或 n 字节] 的文件- -depth #使查找在进入子目录前先行查找完本目录- -prune #通常和 -path 一起使用,用于将特定目录排除在搜索条件之外。过滤条件写在其他条件前面。在此我们对命令支持的选项全部展开详解,根据日常经验结合实际案例列举最常用的选项进行说明:实例:在当前目录寻找文件名称以.txt结尾的文件并打印出来[root@master ~]# find ~ -name "*.txt" -print /root/kubesphere-all-advanced-2.0.2/scripts/os/requirements.txt/root/kubesphere-all-advanced-2.0.2/kubesphere/roles/storages/NFS-Server/files/nfs-server-provisioner/templates/NOTES.txt/root/kubesphere-all-advanced-2.0.2/kubesphere/roles/ks-devops/jenkins/files/jenkins/jenkins-update-center/templates/NOTES.txt/root/kubesphere-all-advanced-2.0.2/kubesphere/roles/ks-devops/harbor/files/harbor/harbor/templates/NOTES.txt/root/kubesphere-all-advanced-2.0.2/kubesphere/roles/metrics-server/files/metrics-server/templates/NOTES.txt/root/kubesphere-all-advanced-2.0.2/kubesphere/roles/openpitrix/files/openpitrix/kubernetes/password.txt查找 /usr/bin 目录下大于 10M 的文件[root@master ~]# find /usr/bin -size +10000k -exec ls -ld {} \; -rwxr-xr-x. 1 root root 13606800 Jul 10 2018 /usr/bin/ceph-dencoder-rwxr-xr-x. 1 root root 15863688 Jul 10 2018 /usr/bin/ceph-objectstore-tool-rwxr-xr-x. 1 root root 15589080 Jul 10 2018 /usr/bin/ceph-osd-rwxr-xr-x. 1 root root 33073928 Feb 10 2019 /usr/bin/docker-rwxr-xr-x. 1 root root 38088856 Feb 10 2019 /usr/bin/docker-containerd-rwxr-xr-x. 1 root root 68608416 Feb 10 2019 /usr/bin/dockerd-rwxr-xr-x. 1 root root 20895160 Feb 10 2019 /usr/bin/docker-containerd-ctr-rwxr-xr-x. 1 root root 10785264 Jul 10 2018 /usr/bin/ceph-mon查找当前目录下权限为 777 的文件[root@master ~]# find . -perm 777 -print ./.helm/repository/cache/local-index.yaml./kubesphere-all-v2.1.0/k8s/extra_playbooks/inventory./kubesphere-all-v2.1.0/k8s/extra_playbooks/roles./kubesphere-all-v2.1.0/k8s/contrib/terraform/openstack/hosts
- 2 解读Spark工作与架构原理 从0基础到笑傲大数据的成长必备秘笈
- 《SpringMVC 中常见的坑》章节小结 刚入行的Java开发者,总会遇到这样那样的坑。资深
depth相关搜索
-
daima
damain
dart
dataset
datasource
datediff
datediff函数
datepicker
datetime
db4o
dbi
dcloud
deallocate
debian安装
debugger
debugging
declaration
declarations
declare
decode函数