【leetcode 968. 监控二叉树】解题报告[待完善...]
方法一:递归 // 0:该节点安装了监视器 1:该节点可观,但没有安装监视器 2:该节点不可观
int monitor = 0;
int state(TreeNode* node)
{
if (node == nullptr) return 1;
int left = state(node->left);
int right = state(node->right);
// 该节点为
Django 连接 Mysql (8.0.16) 失败
首先,确认数据库配置正确无误: DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # or use: mysql.connector.django
'NAME': 'TestDB',
'USER': 'Guest',
'PASSWORD': 'admin',
'HOST': '192.168.218.199',
优雅的查看json文件
前面 jq是一个轻量级但是贼灵活的命令行json处理器.jq在json数据处理中很有用就像用awk处理文本一样。jq最简单的应用应该是解析json文件格式化输出数据吧。有些网站如:json.cn 就是用来在线解析json以一个友好的格式返回给用户查看。解析网站对于简单的json数据使用较为良好,不过对于比较的大的文件就不行了。毕竟你打要开json文件,然后复制到网站上,如果文件太大,还可能卡顿一下。不过jq很强大,你可以设置各种命令,返回你想要的结果。本文简单讲解下jq比较常用的操作。 安装
Webpack & The Hot Module Replacement热模块替换原理解析
Webpack & The Hot Module Replacement热模块替换原理解析 The Hot Module Replacement(HMR)俗称热模块替换。主要用来当代码产生变化后,可以在不刷新游览器的情况下对局部代码块进行替换更新。这在很多情况下都很有用,例如在处理弹出框时,使用HMR可以及时的看到变化,如果用刷新游览器的方式会回到初始页面。 很多人使用过HMR却不知道它是如何工作的,这里会对HMR实现原理进行解析。 关于HMR需要知道的一些事 HMR是Webpack的一个可选
励志成为优产的母猪--------猜数游戏 ,历史记录,pickle保存,队列deque
# pickle 可以处理复杂的序列化语法。(例如自定义的类的方法,游戏的存档等),存档以文件的形式保存 参见 https://www.cnblogs.com/abobo/p/8080447.html # collections是Python内建的一个集合模块,提供了许多有用的集合类。参见 https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001411031239400f7
交互式报告系统 Dr. Tom
华大科技服务开发一套优秀的交互式结题报告系统,适用于没有代码基础的老师分析自己的数据。 http://report.bgi.com/ps/login/login.html 体验之后再做评价!
StringBuilder原理
1、StringBuilder和StringBuffer区别 其实StringBuilder和StringBuffer用法都是一样,几乎没啥区别,我比较常用StringBuilder。 但是说它们之间到底有没有区别,那肯定是有的。 StringBuffer的大多数方法都是用synchronized 修饰的,所以StringBuffer是线程安全的,但是就因为它被修饰了,所以StringBuffer的效率也是比StringBuilder底的。 2、要研究一下StringBuilder的原理就要先
Java中数组复制基本用法和效率对比
java语言提供了很多的方法来对数组进行复制。 其中我们常用的方法有三种:arraycopy(),copyOf()和copyOfRange()。 一、基本用法 1. arraycopy()方法 函数原型: arraycopy(Object src, int srcPos, Object dest, int destPos, int length) src: 原数组 srcPos:原数组起始的位置 dest:目的数组 destPos:目的数组的起始位置 length:所需复制数组的长度 需要注意
System.arraycopy()方法到Arrays 的copyOf()方法
Arrays 的copyOf() - JDK 6 数组的复制,我们可以使用System.arraycopy()方法来进行数组复制:
int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = new int[5];
System.arraycopy(arr1, 0, arr2, 0, arr1.length); 这个方式必须明确自行新建立一个数组对象。在JDK 6中,Arrays 类别新增了copyOf()方法,可以直接传回一个新的数组对象,而当中包括复制的内容
基于角色的权限控制 RBAC与其各种子类型
摘录自地址 1.1RBAC0模型 最简单的用户、角色、权限模型。这里面又包含了2种: 用户和角色是多对一关系,即:一个用户只充当一种角色,一种角色可以有多个用户担当。 用户和角色是多对多关系,即:一个用户可同时充当多种角色,一种角色可以有多个用户担当。 那么,什么时候该使用多对一的权限体系,什么时候又该使用多对多的权限体系呢? 如果系统功能比较单一,使用人员较少,岗位权限相对清晰且确保不会出现兼岗的情况,此时可以考虑用多对一的权限体系。其余情况尽量使用多对多的权限体系,保证系统的可扩展性。如:
ini与properties
.properties 和 INI .properties 主要用在 JAVA 程序中,JAVA 内置对它的解析。它是一种简单的配置文件格式,规则大概只有下面几条: 键值对的表示方式 键=值 属性名称和属性值之间出现的空格将被忽略, 因此 name=Stephen 与 name = Stephen 是等效的 单引号和双引号会作为值的一部分; 允许在一行的开头 使用 # 或者 ! 作为注释; 可以使用 \ 作为转义符,用来转义空格、换行和 Unicode 编码 反斜杠必须写作\\ path=c:
classpath 指向哪里
全文 仅针对 idea的maven项目 我觉得 classpath在 source 路径中指的是target/classes 而classpath 在test source 路径中指的是target/test-classes 点开上面的文件夹,就可以看见配置文件,这也是为什么要加classpath才能找到,否则会在classes中的class文件同级找 参考: https://blog.csdn.net/qq_33393542/article/details/80322141
idea jsp页面报错( 无法理解$,或者jquery click函数报错)
Settings | Languages & Frameworks | JavaScript | Libraries, 点击Download 然后从列表中选择jquery 点击下载 idea 报错 可以在library中添加 jquery 如果没有用,就将click函数 改成 on(click ,function(){ })
ideaURI Is Not Registered
解决方法: 鼠标点击红色字,然后Intellij出现小红灯,选择Fetch external resource即可解决 如果fetch 失败,可以浏览器登录这个url,看能否登录成功和查看其中的内容
portable version
Git下载 页面中 发现有个windows portable version 搜了一下发现 portable version 有这几个特点 Defining features There is no exact specification of what a portable application is, but the following list contain the properties that are usually assumed when talking about port
Ehcache与redis
这是引用 ehcache直接在jvm虚拟机中缓存,速度快,效率高;但是缓存共享麻烦,集群分布式应用不方便。 redis是通过socket访问到缓存服务,效率比ecache低,比数据库要快很多,处理集群和分布式缓存方便,有成熟的方案。 如果是单个应用或者对缓存访问要求很高的应用,用ehcache。 如果是大型系统,存在缓存共享、分布式部署、缓存内容很大的,建议用redis。 补充下:ehcache也有缓存共享方案,不过是通过RMI或者Jgroup多播方式进行广播缓存通知更新,缓存共享复杂,维护不
今日推荐
周排行