- 博客(435)
- 资源 (3)
- 收藏
- 关注
原创 Leetcode675. 为高尔夫比赛砍树:优先队列+广度优先找最短路径
题目连接675. 为高尔夫比赛砍树题目描述解题思路当一个图给出来的时候,砍树路径就已经确定了,是根据树的高度进行排序的。那么每次的行走的起点和重点也就确定了,只需要计算从起点到重点的最小值即可。第一步,遍历整个图,将所有有树的节点假如优先队列。第二步,从(0,0)起点开始,逐步从优先队列中取点。第三步,取出的两个点,通过广度优先算法,计算出长度,即可。解题代码import com.eclipsesource.json.JsonArray;import ..
2022-05-24 20:53:05
407
原创 通过追源码解决:xmlrpc.client设定请求超时时间
一、背景:我们都知道,RPC本质是一个代理模式,是在HTTP或HTTPS请求上面做的封装,那么别人封装好了,拿过来用就好了。这样带来了极大的遍历,但也就导致了另外的问题,有的时候就是不够灵活。在python项目X山中,有的地方用了xmlrpc.client , 但又缺少超时机制。二、分析直接上代码了import xmlrpc.clienturl = 'http://{}:{}'.format("127.0.0.1", 5678)client = xmlrpc.client.Ser
2022-03-30 21:00:00
5114
原创 Leetcode-第 73 场双周赛
2190. 数组中紧跟 key 之后出现最频繁的数字 。 2191. 将杂乱无章的数字排序 。 2192. 有向无环图中一个节点的所有祖先 。 2193. 得到回文串的最少操作次数
2022-03-09 23:05:13
319
原创 Leetcode-第 283 场周赛
2194. Excel 表中某个范围内的单元格 2195. 向数组中追加 K 个整数 2196. 根据描述创建二叉树 2197. 替换数组中的非互质数
2022-03-08 20:15:28
264
原创 JMeter打开jmx文件出错CannotResolveClassException: org.apache.jmeter.protocol.ssh.sampler.SSHCommandSampler
JMeter打开jmx文件出错CannotResolveClassException: org.apache.jmeter.protocol.ssh.sampler.SSHCommandSampler只需要将两个jar包放到正确位置。去下面的连接下载jar包https://github.com/yciabaud/jmeter-ssh-sampler/releases
2022-03-04 23:44:41
1386
1
原创 CentOS7系统 yum 安装报错
背景:在yum命令执行的时候,会报错。原因是,原本系统默认python是python2,后来由于操作把系统默认python给改了。解决办法修改两个文件vi /usr/bin/yumvi /usr/libexec/urlgrabber-ext-down将python改为pyhton2.7结果...
2022-03-03 20:13:25
1505
原创 JAVA显式锁,各种锁分类
显示锁优势使用Java内置锁时,不需要通过Java代码显式地对同步对象的监视器进行抢占和释放,这些工作由JVM底层完成,而且任何一个Java对象都能作为一个内置锁使用,所以Java的对象锁使用起来非常方便。但是,Java内置锁的功能相对单一,不具备一些比较高级的锁功能.Lock提供的接口方法可以看出,显式锁至少比Java内置锁多了一些功能
2022-02-22 22:17:59
545
原创 JAVA对象结构和内置锁
一、Java对象(Object实例)的三部分(1)对象头对象头包括三个字段,第一个字段叫作Mark Word(标记字),用于存储自身运行时的数据,例如GC标志位、哈希码、锁状态等信息。第二个字段叫作Class Pointer(类对象指针),用于存放方法区Class对象的地址,虚拟机通过这个指针来确定这个对象是哪个类的实例。第三个字段叫作Array Length(数组长度)。如果对象是一个Java数组,那么此字段必须有,用于记录数组长度的数据;如果对象不是一个Java数组,那么此字段不存在,所以这是一
2022-02-16 20:00:00
370
原创 JAVA线程之间的通信
wait()方法的原理:首先,JVM会释放当前线程的对象锁监视器的Owner资格;其次,JVM会将当前线程移入监视器的WaitSet队列,而这些操作都和对象锁监视器是相关的。notify()方法的原理:JVM从对象锁的监视器的WaitSet队列移动一个线程到其EntryList队列.
2022-02-16 18:13:33
1578
原创 线程池实战
线程池主要解决了以下两个问题:(1)提升性能:线程池能独立负责线程的创建、维护和分配。在执行大量异步任务时,可以不需要自己创建线程,而是将任务交给线程池去调度。线程池能尽可能使用空闲的线程去执行异步任务,最大限度地对已经创建的线程进行复用,使得性能提升明显。(2)线程管理:每个Java线程池会保持一些基本的线程统计信息,例如完成的任务数量、空闲时间等,以便对线程进行有效管理,使得能对所接收到的异步任务进行高效调度。
2022-02-08 18:47:46
1612
原创 2022年2月2日刷2道简单题目过初二:一道是Leetcode-2022,另一道是Leetcod2000
2022. 将一维数组转变成二维数组2000. 反转单词前缀
2022-02-02 20:00:00
386
原创 什么是Java程序的进程、线程
对Java工程师来说,这里有一个问题:什么是Java程序的进程呢?Java编写的程序都运行在Java虚拟机(JVM)中,每当使用Java命令启动一个Java应用程序时,就会启动一个JVM进程。在这个JVM进程内部,所有Java程序代码都是以线程来运行的。JVM找到程序的入口点main()方法,然后运行main()方法,这样就产生了一个线程,这个线程被称为主线程。当main()方法结束后,主线程运行完成,JVM进程也随即退出。
2022-02-02 15:05:21
2060
原创 Leetcode70场双周赛-第四题2147. 分隔长廊的方案数
进行一轮遍历,每次循环中,找三把椅子。记录第三把椅子的位置。只有在第三把椅子和第二把椅子之间可以放屏风,这两把椅子之间有可以通过下标相减得出。假如找不到第一把、第二把椅子,那就是0。假如找不到第三把,那就可以结束了。
2022-01-26 19:15:00
196
原创 Leetcode70场双周赛-第三题2146. 价格范围内最高排名的 K 样物品
核心办法是:BFS+优先队列第一个思想,就是从起点开始,向四周进行BFS。需要注意的是记录是否访问viewed的数组。第二个思想,排序,按照BFS的方式遍历之后,先遍历到的层级的点,一定是距离最小的。那么,就要考虑相同层级的点之间如何排序。这个排序的规则已经由题目规定,按照价格、坐标来排序。排序的关键就是写好优先队列的排序方法。
2022-01-26 19:00:00
368
原创 Leetcode70场双周赛-第二题2145.统计隐藏数组数目
解题思路第一步,假设第一个数字是0第二步,遍历数组,在假设第一个数是0的前提下,寻找数组的最大值,和最小值。第三步,看看最大值和最小值的差与给定最大值和最小值的差做一个计算。
2022-01-25 18:53:00
240
原创 Leetcode70场双周赛-第一题2144. 打折购买糖果的最小开销
第一步,进行排序。第二步,从最后一个往前找,每次找三次。第三步,看最后还剩几个,最后只能剩1个2个0个剩0个刚好结束,剩1个或两个,就直接都买下。
2022-01-25 18:51:26
208
原创 Leetcode第 276 场周赛-第一题5980. 将字符串拆分为若干长度为 k 的组
5980. 将字符串拆分为若干长度为 k 的组 - 力扣(LeetCode) (leetcode-cn.com)解题思路原本以为是几行代码就搞定了,但写起来还是有点复杂,功力还是不够
2022-01-18 12:28:18
237
原创 Leetcode第 276 场周赛-第二题2139. 得到目标值的最少行动次数
拿到题目冷静分析,加倍一定是使1最快到达target,但是加倍次数有限。再次冷静分析,1加倍到2 和 5加倍到10,一次加倍,肯定是数越大,收益越大。因此,需要将加倍的机会给更大的数。当拿到19的时候,把加倍机会首先给到9因此,要从target开始逆推到1更为合适。如果是奇数,那么先做个减一操作,再折半如果是偶数,直接折半当加倍次数消耗光了,其余的就是增加了
2022-01-17 20:00:00
286
原创 Leetcode第 276 场周赛-第三题2140. 解决智力问题
第一层级:依次从每个问题开始,往下找最大值。例如事例二,从问题0开始,跳过了问题1,然后问题就简化成了从问题3,4,5里面重新选择一个开始。第二层级:假如按照第一层级,会有大量的重复计算。需要把计算过的子问题做一个记录。假如你从问题0,问题1,问题2, 都可以跳到问题3,那问题3之后的子问题的解决是一样的,因此需要记录问题开始的最大值。第三层级:假如你在计算子问题的时候,你需要计算一个最大值。例如,你的问题很多,在计算问题next到末尾的最大值的时候,很可能最大值已经计算过了,因此,对该最大值也做一个记录
2022-01-17 20:00:00
254
原创 Leetcode第 276 场周赛-第四题2141. 同时运行 N 台电脑的最长时间
参考抄袭了一个大佬的方法(1)对数组排序、求和(2)从大到小进行一次遍历,当发现你的电池容量已经超过了平均值,那这个电池就只能为一台电脑充电到永远。让后将该电池直接移除,需要充电的电脑也不用管了。
2022-01-17 20:00:00
436
原创 Leetcode69场双周赛-第四题5931. 用邮票贴满网格图
查找标志为0的点,尝试以该点为邮票的左上角,直到尝试为以该点为邮票的右下角.如果能放邮票,并覆盖该为0 的点,则把覆盖的点标志为2。如果不能,直接返回false.
2022-01-09 16:34:51
454
原创 Leetcode69场双周赛-第三题5962. 连接两字母单词得到的最长回文串
定义map和sameMap。如果两个字母一样,就看sameMap里面有没有记录,有的话把该记录取出来,结果总数+4,没有的话,放入sameMap。 如果两个字母不一样,把两个字母倒转过来,就看map里面有没有倒转后的记录, 有的话把该记录数-1,结果总数+4, 没有的话,把未倒转的结果放入map
2022-01-09 16:12:36
432
原创 Leetcode69场双周赛-第二题5961.链表最大孪生和
开始的时候,可能想到快慢指针、想到栈等等,但后来发现,只需要将链表中的数字转存到ArrayList里面,然后遍历,遍历到一半就可以了。
2022-01-09 15:58:26
366
原创 【postgresql初始化失败】initdb: invalid locale settings; check LANG and LC_* environment variables(之二)
The files belonging to this database system will be owned by user "postgres".This user must also own the server process.initdb: invalid locale settings; check LANG and LC_* environment variables
2021-12-10 17:01:16
2266
7
原创 用栈实现队列与用队列实现栈
一.用栈实现队列用栈实现队列的思路是用两个栈,只是在出队的时候,将第一个栈中的元素移动到另一个栈中,在从第二个栈中出栈就可以了.二.用一个队列实现栈用一个queue来存储数据,用一个值来存储栈顶元素.在出栈时,需要把n-2个元素重新出栈,然后加入队列,剩下两个元素,一个作为栈顶,一个作为方法返回
2021-11-20 22:53:17
343
原创 Leetcode-199二叉树的右视图(二叉树左视图)
采用一个队列+计数的方法,每个层次的遍历,之前,都先统计一下这一层有多少个节点。队列有n个节点,当这一层级的第n个节目点出栈的时候,将该节点计入结果。
2021-11-18 13:40:32
636
2
原创 JAVA二分查找-探讨思维与代码的一致性
二分查找的实现,探讨探讨思维与代码的一致性展示两段代码,这两段代码可能并没有差别,都是二分查找的实现。public class Main { public static void main(String[] args) { int[] i = {1,2,5,6,7,9,10}; binarySearch(i,10); } public static void binarySearch (int[] nums ,int num){
2021-11-10 21:34:41
368
原创 CEPH给用户创建读写权限
ceph auth get-or-create client.kyc mon 'allow r' osd 'profile rbd pool=yucheng_pool' > ceph.client.kyc.keyring 其中kyc 为用户名 yucheng_pool为用户存储池
2021-09-29 09:14:12
834
原创 Leetcode-5846.周赛 找到数组的中间位置
题目给你一个下标从0开始的整数数组nums,请你找到最左边的中间位置middleIndex(也就是所有可能中间位置下标最小的一个)。中间位置middleIndex是满足nums[0] + nums[1] + ... + nums[middleIndex-1] == nums[middleIndex+1] + nums[middleIndex+2] + ... + nums[nums.length-1]的数组下标。如果middleIndex == 0,左边部分的和定义为...
2021-09-04 23:22:52
160
原创 数组中出现次数超过一半的数字
题目来源链接:https://www.nowcoder.com/questionTerminal/e8a1b01a2df14cb2b228b30ee6a92163来源:牛客网数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组[1,2,3,2,2,2,5,4,2]。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。你可以假设数组是非空的,并且给定的数组总是存在多数元素。1<=数组长度<=50000,0<=数组元素<=100.
2021-09-02 19:44:32
70
原创 FastAPI使用async?乱用async导致灾难,不如直接不用
如果你定义了async函数,函数体却是同步的调用,将导致函数执行过程变成串行。
2021-08-05 16:01:06
8040
自动完形填空系统构建-基于n元模型构建的朴素系统
2018-06-27
送女友的礼物源码详情见博客
2018-02-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅