打开RabbitMq管理工具时保持,Error: {cannot_write_enabled_plugins_file,“/etc/rabbitmq/enabled_plugins“,eacces} 环境:Ubuntu18今天装好RabbitMq,打算装管理工具rabbitmq_management,就报错如下用管理员身份 sudo 就好啦
Ubuntu安装java,环境变量不生效,每次启动一个新的终端都要重新配置 情况介绍在/etc/profile 里面配置了JAVA_HOME,使用 source /etc/profile 更新了源,但是每次打开一个终端,就找不到java,需要重新执行source /etc/profile,手动读取profile才行解决sudo gedit ~/.bashrc在末尾添加上source /etc/profile解释两者都用来保存用户的环境变量,profile 用于非交互式shell(即在交互式shell下不会主动读取,只能手动读取), .bashrc 用于交互式shel
Application run failed org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputExcept Spring Boot中,application.yml编码错误ERROR org.springframework.boot.SpringApplication - Application run failedorg.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length = 2解决:1.将编码改回去2. 将原来的yml文件复制出来到txt中,txt另存为utf-8,再
2021-03-02 本题可以先不急着使用代码实现,可以试着在纸上看看怎么还原,不难发现,前序遍历的第一个数3,可以把中序遍历划分为两部分,左边是左子树,右边是右子树。3则是根节点。而左右子树又可以用同样的方法继续划分,所以可以使用分治思想来解题。为了减少遍历,可以将中序遍历放在map里,这样可以在时间复杂度为O(1)中计算得出前序遍历某一个数在中序遍历数组中的下标。下图是计算前序遍历左子树范围和中序遍历左子树范围,以及右子树范围… … 方便将它们当做完整的子树的前中序遍历传入递归子函数。class Solution {.
TreeMap排序 TreeMap默认是按key从高到低排序的,所以对其重构时o2 - o1就是从小到大排序了TreeMap<Integer, Integer> treeMap = new TreeMap<>(new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { return o2 - o1; }});...
计算机网络(物理层,数据链路层) 一、前言1.OSI七层模型记忆方法:物(物理层)联(数据链路层)网(网络层)叔(传输层)会(会话层)使(表示层)用(应用层)端到端:只关心去哪里1.应用层:所有能和用户交互,产生网络流量的程序2.表示层:用于处理两个通信系统中交换的信息的表示方式(数据的编解码)如数据格式变换、数据的加密解密、数据的压缩与恢复3.会话层:建立传输两端的连接,并在连接上有序得传输数据。建立同步(SYN)4.传输层:负责主机中两个进程的通信,即端到端通信功能1:可靠传输,不可靠传输(不需要建立连接,不用管会
448. 找到所有数组中消失的数字 这道题要解答还是很简单的,直接hash,但是要让空间复杂度为O(1),忽略返回的List的大小,还是稍微动一下脑筋的。具体思路就是:将原始数组作为hash的结构,就不用新开空间了。遍历数组,由于数组中数字的范围是1~n,与数组中每个元素下标可以一一对应。将遍历到的数组的数字减一与n求余,范围就是0~n-1,然后将该数字作为数组下标,将下标对应的数字加n最后重新遍历数组,小于等于n的数字的下标就是没出现过的数字代码如下import java.util.ArrayList;import .
使得字符串a所有字符均小于字符串b,所需要改变的次数,a,b均只含有小写字母 这道题看似比较难,实际上只要有思路就可以很快写出来。以a 小于 b为例。假设字母表中的第i位为a的上界,则b的上界应该为i+1。a的上界最多为y,因为a需要严格小于b。如果a的上界为i,则a从i + 1开始的元素就需要改变。则a需要改变的次数为countA[i+1]到count[26]的累加。同理,b需要改变的元素个数为countB[0]到count[i]的累加,使其都严格大于字母表第i个元素。/** * @author: Xie * @Description: TODO * @Date: 2.
Android拍照,照片会自己旋转 最近写Android,调用相机接口拍照,但是返回来的结果老是会旋转,而且在不同的手机上旋转角度还不一样。解决办法可以在拍完照以后,获取图片的旋转信息,然后往相反方向旋转获取旋转角度代码如下// 从指定路径path下读取图片,并获取其EXIF信息ExifInterface exifInterface = new ExifInterface(path);// 获取图片的旋转信息int orientation = exifInterface.getAttributeInt(ExifInterface
交换数组的汉明距离 该题初看很难实现,但是想到并查集就不难了。这道题从给出的allowedSwaps入手,可以想象有sourced的长度个点,这些点通过allowSwaps构成图,只要得出图的哪些部分是联通的,则这些部分的值可以任意交换,只要得出这些集合中,在source里却不在target里的元素的个数,就是该集合的汉明距离,最后将这些不想交集合的汉明距离统计起来即可。最初用list来统计集合内的元素,结果超时了,后面用map进行优化。...
旋转数组问题 该题如果空间复杂度为O(n)的话就比较简单,但是如果要使空间复杂度为O(1)则有如下两种方法。方法一数组为[1,2,3,4,5,6,7],数组长度ll为7,k为2观察移动过后,假设将数组分为[0,1]部分1和[2,7]部分2,则部分1会在部分2后面去。所以先将数组整体翻转得到:[7,6,5,4,3,2,1]。然后再将[0,1]部分和[2,7]部分翻转,得到[6,7,1,2,3,4,5],也就是结果。class Solution { public static void rotate(in.
给你一个整数数组 nums ,返回该数组所有可能的子集(幂集)。解集不能包含重复的子集。 题目思路:每个数有两种情况,取或者不取。所以一共有2的n次方种解法。可以联想到二进制来表示,所以遍历0到2^n-1,然后将其转为二进制字符串。二进制位上为1的就取,不为1的就不取。但是有个问题,java的Integer.toBinaryString函数,前面不会补0,只会保留最高位0,所以倒着取。要计算一下二进制的长度,与num的长度,取个差值,最后才能索引回去其在num里的原始位置。不然最高位一直都是1,num索引0也一直存在。代码如下package practice;import j
java中的优先队列PriorityQueue使用详解 虽然称PriorityQueue为队列,但是其实它和队列关系并没有太大,称它为小顶堆更合适。因为其中的数据都会按完全二叉树进行小顶堆构造,当插入新数据的时候会自动将数据插入到合适的位置来保证是一个小顶堆。注意,队列中的数据不一定有序,但是每次弹出来的一定是最小(最大)的值。它的常用方法如下:add:插入队尾元素,不成功会抛出异常offer:插入队尾元素,不能被立即执行的情况下会返回true 或 falseremove:删除队头元素,如果不成功会返回false。poll:删除队头元素,并返回删除
java数组转List,List转数组 一、整型1.整型数组转ListList<Integer> list = Arrays.stream(arr).boxed().collect(Collectors.toList());2.List转整型数组int[] arr = list.stream().mapToInt(Integer::valueOf).toArray();
双端队列Deque java Deque支持在两端插入和移除元素。名称 deque 是“double ended queue(双端队列)”的缩写,通常读为“deck”。函数名添加功能push(E)向队头插入一个元素offerFirst(E)向队列头部加入一个元素offerLast(E)向队列尾部加入一个元素函数名获取功能peekFirst()获取队列头部元素peekLast()获取队列尾部元素函数名删除功能removeFirstOccu
使用队列的一个典型题(leetcode 649.DOTA2) 比如:输入:“DRRDRDRDRDDRDRDR”需要从头遍历,中间会删除,然后没有达到要求又会继续从头遍历。这种题就比较适合使用队列。解题代码如下:public static String predictPartyVictory(String senate) { int len = senate.length(); Queue<Integer> queueR = new LinkedList<>(); Queue<Integer> qu.