“Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&ar”。centOs7使用yum安装命令失败的解决方案 更换yum源解决问题
Java-高级数据结构在算法中的应用:红黑树 Java中的集合TreeSet底层实现使用了红黑树,红黑树本身是一颗平衡二叉树,整体元素呈有序状,以任意顺序插入元素(实现了comparator接口的元素),都会得到一个有序集合。此外,TreeSet支持返回特定元素的前一个和后一个元素,此特性在leetcode周赛400期的t4中得到应用:使用该数据结构结合线段树,可灵活修改节点值,并容易得到某区间的最大空白区域值。
算法-跳马 解法:每一个点都可能作为汇集的那个点,因此采用遍历的方式,对每个点进行处理,得出每个点的“所有马跳到本点的最小步数和“,取最小值即可。逻辑1:以该点作为源点出发,求处从该点出发访问所有马(如果能访问完)所需的最小步数。根据马走日的规则,下一步有八个格子可作为”下一个格子“,”下一个格子“可能是马,也有可能是空格。如果是马,该马有自己的可跳距离k,从该马的位置离源点的步数step(暗示用队列)已知,若k>=step,说明该马可跳到汇集点(源点),否则结束,因为有一个马无法跳到汇集点;
算法-可完成的最大任务数 为了尽可能多的完成任务,充分利用时间,越早越好,所以从项目开启的那一天起就开始做任务,一直做到项目结束为止。但是,对于第i天来说,若可执行的任务有多个,该如何选择?根据设定,这些任务都有各自的结束时间,所以为了尽可能多的做任务,优先选择结束时间早的任务;若第i天没有任务,就选择等待(休息)。根据思路,可写出暴力搜索的代码(超时)
算法-亲子游戏 问题简述:求从mom点到baby点时,最短路径中可获得的最多糖果数看似bfs问题,实则没那么简单。一般的bfs只是完成点的遍历,路径中的点是无条件互斥访问的。而本题要求的是糖果数最多的路径(可能不止一条),显然对可访问的点不能再采用无条件互斥访问的方案,如下图:路径1和路径2都可能经过点pot(为简化论述,实际上可能有四条路径经过点pot),那么pot能不能无条件互斥访问?
算法-解密犯罪时间(回溯求全排列 要求的时间需要晚于当前时间且和当前时间最近。时间串里一共四个数字字符,做全排列即可,使用到回溯算法。把时间串里的“:”剔除后,做回溯爆搜,每取4个字符就判断一次:1.作为时间串是否合法;2.如果合法,反应到最终结果中去;特殊处理1:当以输入时间串得不到更大的时间时,说明比当前时间更晚的是第二天的时间,又要求这个时间离当前时间最近,所以直接取能得到的最小时间即可。特殊处理2:当输入“00:00”,“11:11”,“22:22”这些四个位置都相同的时间串时,答案是其本身,含义:第二天的同一时刻。
算法-靠谱的车(数位模拟) 简要:每个数位从9到0均统计一遍,其中个位上只需统计1次。原数肯定不包含1,在逐一借位时可能产生4,要单独处理。对于n=100,个位为0,显然没有跳过4,需要将其降到个位大于4的最大数:99,即借位。99: 多加了1, 高位降为变89,再判断。49: 从40-50都被跳过,多加了10.09:多加了1,高位无法再降,结束。89: 多加了1, 高位降为变79。79: 多加了1, 高位降为变69。
大整数工具-BigInteger 减法:big=big.subtract(BigInteger another)乘法:big=big.multiply(BigInteger another)除法:big=big.divide(BigInteger another)加法:big=big.add(BigInteger another)
二分插入细节 范围收缩:插入后其后一个元素肯定大于等于它,前一个元素肯定小于它,当find<target时,find一定不是插入位置,可令left=mid+1,当find>=target时,target可能替代find成为第mid小的元素(从0数),find变成第mid+1小,所以对于可能取到的数,不能跳过,所以右边界right=mid。边界:由于是向数组插入元素,插入位置的前一位是0~n-1,插入后元素的下标可能为0~n,所以,搜索的范围要设为0~n;
关于0 1背包问题的详细解读-(不断更新中) 第368场leetcode周赛第二题使用到了0 1背包问题的解法,由于当时对0 1背包问题理解不是很透彻,导致这题丢分。在b站上看了启蒙课程再加上自己理解,于是有了这篇博客,一是方便自己复习总结,二是为算法小白提供帮助。
一阵见血回答”为什么要有包装类?“ 为了使Java语言面向对象的设计理念更加严谨,“面向对象”中的对象,是方法和属性的集合体,属于java数据类型中的引用数据类型,而java的数据类型还包括了基本数据类型,为了使“java的基本数据类型“也满足”面向对象“,必须要实现基本数据类型。,因此才有了包装类。基本数据类型和它的包装类之间,通过。