root

lectcode-二叉树的最近公共祖先

≡放荡痞女 提交于 2020-01-31 05:11:00
要求 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 代码 递归 TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) { if(!root||root==p||root==q) return root; TreeNode *first = lowestCommonAncestor(root->left,p,q); TreeNode *second = lowestCommonAncestor(root->right,p,q); if(first&&second) return root; //如果first和second都找到了,就可以返回根节点。 return first?first:second; //如果first找到了就赋给second。 } 总结 递归时先从当前头节点递归,找到两个节点位置,保存到first和second.如果first和second都不为空,则返回根节点。 来源: CSDN 作者: 易殇 链接: https://blog.csdn.net/Dreamer_rx

【LeetCode算法修炼+动画演示】——226. 翻转二叉树

一世执手 提交于 2020-01-31 03:13:02
226. 翻转二叉树 原题链接 翻转一棵二叉树。 示例: 输入: 4 / \ 2 7 / \ / \ 1 3 6 9 输出: 4 / \ 7 2 / \ / \ 9 6 3 1 备注: 这个问题是受到 Max Howell 的 原问题 启发的 : 谷歌:我们90%的工程师使用您编写的软件(Homebrew),但是您却无法在面试时在白板上写出翻转二叉树这道题,这太糟糕了。 要点 比对一下题目这两个代码图片。如果按每一层来看的话,就是把结点的左右两侧子树进行交换 第二层交换 4 / \ 7 2 / \ / \ 6 9 1 3 第三层交换 4 / \ 7 2 / \ / \ 9 6 3 1 递归 代码片段 func invertTree ( root * TreeNode ) * TreeNode { if root == nil { return nil } root . Left , root . Right = root . Right , root . Left if root . Left != nil { invertTree ( root . Left ) } if root . Right != nil { invertTree ( root . Right ) } return root } 代码解释 先序遍历的过程,只是这个额外做了交换操作。 😁😁😁制作动画过程不易

Educational Codeforces Round 81 (Rated for Div. 2)F(线段树)

心已入冬 提交于 2020-01-31 02:17:59
预处理把左集划分为大小为1~i-1时,把全部元素都移动到右集的代价,记作sum[i]。 然后枚举终态时左集的大小,更新把元素i 留在/移动到 左集的代价。 树状数组/线段树处理区间修改/区间查询 1 #define HAVE_STRUCT_TIMESPEC 2 #include<bits/stdc++.h> 3 using namespace std; 4 #define ll long long 5 const int N=2e5+7; 6 struct Tree{ 7 ll minn,lazy; 8 }tree[N<<2]; 9 ll sum[N];//前缀和 10 inline void build(int root,int l,int r){ 11 if(l==r){ 12 tree[root].minn=sum[l];//1~l的a[i]之和 13 tree[root].lazy=0; 14 return; 15 } 16 int mid=(l+r)>>1; 17 build((root<<1),l,mid); 18 build((root<<1|1),mid+1,r); 19 tree[root].minn=min(tree[(root<<1)].minn,tree[(root<<1|1)].minn);//up 20 return; 21 } 22 inline

MariaDB 密码,新用户添加

落爺英雄遲暮 提交于 2020-01-31 01:13:51
修改root密码 1.以root身份在终端登陆(必须) 2.输入 mysqladmin -u root -p password ex 后面的 ex 是要设置的密码 3.回车后出现 Enter password 输入就密码,如果没有,直接回车 打开远程访问权限 MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> flush privileges; Query OK, 0 rows affected (0.00 sec) 如果远程还是没有办法访问,那就开启3306端口就行: [root@marslv yum.repos.d]# iptables -A INPUT -p tcp --dport 3306 -j ACCEPT [root@marslv yum.repos.d]# service iptables save [root@marslv yum.repos.d]# service iptables restart 创建用户 //创建用户 mysql> insert into mysql.user(Host,User

Spark SQL学习笔记

我是研究僧i 提交于 2020-01-30 20:04:12
Spark SQL概述 MapReduce有Hive作为调用接口,可以不用每次都手写MapReduce,而是让Hive自动生成MapReduce代码自己执行 那么Spark框架就有类似的产品,Shark(完全照搬Hive的设计 Shark两个缺点 因为完全照搬Hive,Hive是针对MapRudece开发的,所以Shark照搬了Hive就不好对Spark进行新增优化策略 Spark线程级运行,MapReduce进程级运行,这样会产生线程安全问题,需要打补丁 然后就出现了Spark SQL 然后有了新的数据类型,DataFrame,支持SQL查询—之前Spark对RDD进行操作 RDD和DataFrame的区别 DataFrame创建 Spark Shell 会自动帮你创建sc对象和SparkSession对象 可以在Spark SQL读写数据的操作中看到,我们启动spark-shell的时候,会输出下面两条语句 Spark context available as 'sc' (master = local[*], app id = local-1575509509014). Spark session available as 'spark'. ## 终端1 scala > val peopleDF = spark.read.format ( "json" ) .load (

leetcode114.二叉树展开为链表

ⅰ亾dé卋堺 提交于 2020-01-30 18:54:34
给定一个二叉树,原地将它展开为链表。 例如 给定二叉树: 1 / \ 2 5 / \ \ 3 4 6 将其展开为: 1 \ 2 \ 3 \ 4 \ 5 \ 6 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/flatten-binary-tree-to-linked-list 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 完整代码 基本思想 递归 先将根的右子树展平 再将左子树展平,同时将展平的左子树插入到根和右子树之间,这时候需要找到展平的左子树的叶子节点,让叶子节点连接右子树。 递归上述过程 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public : void flatten ( TreeNode * root ) { //原地展开思想: //将根的左子树链接在根的右孩子下,根的右子树链接在左子树下 move ( root ) ; } private :

ffmpeg裁剪编译

廉价感情. 提交于 2020-01-30 16:38:56
FFmpeg可以支持模块的裁剪编译,通常我们会按默认的方式进行编译,把常用的功能模块全部编译到程序中,但是应用到嵌入式系统中,或者存储空间有限制的环境,就需要对FFmpeg进行按需编译。 默认编译 我们可以看一下通常的编译的ffmpeg文件大小 ffmpeg version 4.2.2 Copyright © 2000-2019 the FFmpeg developers built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516 configuration: --prefix=…/local --env=‘PKG_CONFIG_PATH=…/local/lib/pkgconfig’ --pkg-config-flags=–static --extra-ldexeflags=-static --disable-doc --disable-libxcb --enable-gpl --enable-version3 --enable-nonfree --enable-libx264 --enable-libfreetype --enable-libfdk-aac --enable-libmp3lame --enable-libwebp --enable-libx265 --enable-libvmaf --extra-libs=’

006-解决ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)【转】

≡放荡痞女 提交于 2020-01-30 12:51:04
本文转载自: https://blog.csdn.net/hua1011161696/article/details/80666025 解决方案: 步骤一:关闭数据库服务端mysqld程序 两种方式: ①快捷键 windows + R ;输入 services.msc ; 找到MySQL 停止其服务(前提是你之前已经把MySQL加入了系统服务中) ②在命令行程序中;注意需要以管理员权限运行cmd程序,不然无法关闭mysqld进程 >>tasklist |findstr mysqld 这行命令可以用来查看mysqld是否在运行,在运行中则可以查到它的PID >>taskkill /F /PID xxxx xxxx是从前面一条命令得到的PID值 步骤二:跳过权限登录MySQL 服务器端 在cmd中执行 mysqld --skip-grant-tables >>mysqld --skip-grant-tables 此时cmd程序会阻塞,关闭cmd程序 然后重新以管理员权限运行cmd 然后在cmd命令行中输入 mysql 就能连接上MySQL 服务器端了 >>mysql 然后可以通过sql语句 :SELECT * from mysql.user\G; 来查看服务器端所有的用户信息,重点查看User、Password、authentication_string这三项。这条语句非常关键。

二。硬件的选择与系统的安装

删除回忆录丶 提交于 2020-01-30 10:16:32
既然是作为NAS服务器,硬盘就一定要大,而硬盘如果要大的话,可能需要主板有相应的支持,最好是集成显卡,降低负载和成本。这部分,我没有太深入的研究,只是在这里提个醒,我目前的机器是赛扬+512内存+1T硬盘,目前来看,运行还是很稳定的,支撑常用的服务也没有问题。 操作系统选择ubuntu ,选择这个系统的主要原因是,这个系统主要支持桌面应用,而红帽比较适合企业应用,企业级的服务多一些。 有几个是最常用的知识,没有的软件安装或者更新,apt-get, apt-get install 更新系统的话apt-get upgrade 如果,更新某一个软件的话 apt-get upgrade 软件名,这个可以用通配符 敲不出来命令,就按tab,或者按两下 这些常用Linux的人,都很熟悉,但是,新手的话,还是很有用的 装上显示器,键盘,鼠标,键盘鼠标,建议用USB的。操作系统正常安装,没有什么特别需要注意的。安装完成之后,有几个修改需要进行: 1.以文字方式启动,由于NAS是完全通过网络访问的,因此机器以图形方式启动,完全没有必要,只能占用不必要的资源 2.运行root用户登录。ubuntu默认是关闭root用户的,主要是出于安全考虑,由于NAS是在内网家用,而不同的用户必然会带来权限方面的问题,因此,出于以后使用和维护的便利,还是把root用户打开比较好 3.测试ssh连接是否可以

ceph安装问题

﹥>﹥吖頭↗ 提交于 2020-01-30 07:49:40
ceph-deploy安装 Yum priorities plugin Loaded plugins: fastestmirror Loaded plugins: fastestmirror, priorities yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm cat << EOM > /etc/yum.repos.d/ceph.repo [ceph-noarch] name=Ceph noarch packages baseurl=https://download.ceph.com/rpm-mimic/el7/noarch enabled=1 gpgcheck=1 type=rpm-md gpgkey=https://download.ceph.com/keys/release.asc EOM yum install ceph-deploy ntp ntpdate ntp-doc -y ssh-keygen #下面得一条条执行 ssh-copy-id ceph1 ssh-copy-id ceph2 ssh-copy-id ceph3 echo "192.168.7.151 ceph1" >> /etc/hosts echo "192.168.7.152