
Java
文章平均质量分 53
横眉小生
这个作者很懒,什么都没留下…
展开
-
组合总和
深度递归 剪枝深度递归 剪枝 50% 72.27%深度递归,不断减去数组序列中的值,直到减到 target < 0,剪枝的过程:idx 为简直过程;如:深度为 1 时,递归 for 循环第一层,会将所有减1的情况包含,所以 for 循环第二次时候,从 index=2 开始(即candidates[2]),不用再减去 candidates[1] 的数。for 循环第三次时候,index=3, 不用减 candidates[1]、candidates[2] 的元素……class Solut原创 2021-07-24 19:13:50 · 166 阅读 · 0 评论 -
深度优先 求 图中强连通子图的个数
说明输入矩阵形式的图,matrix[i][j] 值为 1 说明边 i 与边 j 相连。定义一个 visited[] 的 Boolean 数组,为 true 表示此边已经访问过。算法时间复杂度: n的平方可以优化为: n的平方/2步骤1、访问每行数据,如果已经访问过,跳过;2、如果没有访问过:连通子图数量+1,将此边 visite 设置为 true。并深度遍历此连通子图,将此连通子图的所有边设置为 visited。public class Practice { public stat原创 2021-07-18 21:08:54 · 665 阅读 · 0 评论 -
mvc起手 IDEA部署
IDEA部署springframwork1、建立maven项目2、maven pom文件导入依赖包,设置项目packaging打包为war包3、resources目录下建立 applicationContext.xml 的spring配置文件4、File -> Project Structure -> Modules 中加入spring,并选择上一步已创建的applicationContext.xml文件;再加入Web配置,在Web Resource Directories中配置生成w原创 2021-06-13 08:29:19 · 1319 阅读 · 1 评论 -
一道面试题
//输入:{ ‘A’: 1, ‘B.A’: 2, ‘B.B’: 3, ‘CC.D.E’: 4, ‘CC.D.F’: 5}//输出:{‘A’:1,‘CC’:{‘D’:{‘E’:4,‘F’:5}},‘B’:{‘A’:2,‘B’:3}}思路是将其转化为树结构,然后按照规则打印树的信息import java.util.*;public class Main4 { //字典转化, { ‘A’: 1, ‘B.A’: 2, ‘B.B’: 3, ‘CC.D.E’: 4, ‘CC.D.F’: 5}.原创 2020-11-13 19:48:45 · 106 阅读 · 0 评论 -
线程入门
线程六态new:创建;runnable(start):此状态线程正在执行,但可能在等待操作系统其他资源blocked(阻塞):监听等待锁,进入synchronized资源waiting(等待):wait()、join()方法时间内或处于LockSupport的park中;线程等待可以是object.wait()等待其他线程唤醒,也可以是thread.join()等待其他线程结束;timed-waiting:sleep,wait(time),join(time),LockSupport.parkN原创 2020-10-28 13:14:23 · 142 阅读 · 0 评论 -
仿源码重写 HashMap java实现
自定义HashMap方案采用:定址:除留余数法冲突:拉链发自动扩容:threshHold阈值,超过容量0.8则自动扩容public class MyHashMap<K,V> { Node<K,V>[] table; int size = 8; //初始大小8 int threshHold = 0; public MyHashMap() { table = new Node[size]; } /* * put前先resize,原创 2020-08-08 20:48:01 · 363 阅读 · 0 评论 -
TCP服务:Socket实现文件上传下载
客户端package ServerClient;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.io.InputStreamReader;import java.io.Obje原创 2020-07-07 23:32:06 · 380 阅读 · 0 评论 -
日期、格式化输出的写法
import java.text.MessageFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date;public class Format { public static void main(String[] args) { String message = "{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}"; Object[] arr原创 2020-05-27 16:05:12 · 217 阅读 · 0 评论 -
hashtable、hashset
HashSet的三种遍历import java.util.HashSet;import java.util.Iterator;public class traverseSet { public static void main(String[] args) { HashSet<String> hsArr = new HashSet<String>(); hsArr.add("hahah"); hsArr.add("dabadaba"); hsArr.a原创 2020-05-26 19:51:03 · 302 阅读 · 0 评论 -
归并排序非递归
import java.util.Arrays;public class MergeSort非递归 { public static void main(String[] args) { int[] arr = {7,10,4,2,9,6,100,70,50,22,13,11,19,900}; Merge_Sort(arr); System.out.println(Arrays.toString(arr)); } /* * @temp 数组用于存储调序后的arr */原创 2020-05-22 10:54:39 · 283 阅读 · 0 评论 -
归并排序的递归调用
import java.util.Arrays;public class MergeSort{ public static void main(String[] args) { int[] arr = {7,10,4,2,9,6,100,70,50,22,13,11,19}; Merge_Sort(arr); System.out.println(Arrays.toString(arr)); } /* * @temp 数组用于存储调序后的arr */ public s原创 2020-05-21 22:45:02 · 329 阅读 · 0 评论 -
简单哈希表(散列表)的理解
在线性表、树等数据结构中,记录在结构中的相对位置是随机的,和记录的关键字之间不存在确定的关系,因此在结构中查找记录时需进行一系列和关键字的比较。它们查找的效率都依赖于查找过程中所进行的比较次数。那么,在理想的情况下有没有不经过任何比较,一次存取便能得到所查记录。这种情况就必须在记录的存储位置和记录的关键字之间建立一个确定的对应关系f(K),由此,便可不需要比较便直接取得所查记录。这个f,我们称之为哈希函数,按照这个思想来建立哈希表。但对于不同的关键字,可能得到同一哈希地址,即k1≠ k2,而f(k1) .原创 2020-05-20 21:57:48 · 452 阅读 · 0 评论 -
快速排序
转自:链接: https://www.cnblogs.com/hjy9420/p/5032309.html.import java.util.Arrays;public class QuickSort { public static void main(String []args){ int[] arr = {12,20,5,16,15,1,30,45,23,9}; int start = 0; int end = arr.length-1;转载 2020-05-19 22:35:29 · 146 阅读 · 0 评论 -
简易Sedgewick希尔排序
希尔排序希尔排序法(缩小增量法) 属于插入类排序,是将整个无序列分割成若干小的子序列分别进行插入排序的方法。希尔排序实质是应用增量序列加快插入排序的算法。希尔排序的好坏主要取决于获取增量序列的方法。步骤:1、定义增量序列;2、按增量序列的间隔选取数组元素;3、对选取的数组元素进行插入排序,缩小增量值;重复步骤3,直到增量序列=1;增量序列种类:原始希尔排序增量:第一次 D1=M(数组长度)/2; 后序:Dk=Dk+1 &原创 2020-05-19 15:00:41 · 938 阅读 · 0 评论 -
简单插入排序
package sort;import java.util.Arrays;public class InsertSort { public static void main(String[] args) { int[] arr = {7,10,4,2,9,6,100,70,50,22,13,11,19}; Insert_Sort(arr); System.out.println(Arrays.toString(arr)); } /*算法思想:从第一个元素开始,该元素可以认为原创 2020-05-19 10:39:24 · 151 阅读 · 0 评论 -
简单冒泡排序
package sort;import java.util.Arrays;public class Bubble{ public static void main(String[] args) { int[] arr = {7,10,4,2,9,6,100,70,50,22,13,11,19}; BubbleSort(arr,1); //正:升序;负:降序 System.out.println(Arrays.toString(arr)); } public static原创 2020-05-18 15:27:12 · 148 阅读 · 0 评论 -
简单二分法查找
package find;public class 二分法查找{ public static void main(String[] args) { int[] a = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 }; int loc; for( int i=1; i<=a.length; i++){ loc = BinarySearch( a , i ); System.out.println(loc); } } public原创 2020-05-18 11:57:15 · 118 阅读 · 0 评论 -
翁恺老师 狐狸和兔子练习
习题描述狐狸、兔子都有年龄;到达一定年龄上限会自然死亡;狐狸随机吃掉周围一只兔子;狐狸、兔子可以随机生一只小的放在旁边格子;如果不吃不生,狐狸、兔子可以随机向旁边格子移一步会随机吃掉Animal抽象类animal抽象类是fox,rabbit的父类:属性:ageLimit(生存时间),breedableAge(生育年龄),age(现年龄),isAlive;方法:**构造方法:**生存时间、生育年龄;**简单方法:**获取年龄、年龄百分比、成长(到年龄死亡)、见耶稣、确定没死、确定能生、寿原创 2020-05-15 21:19:27 · 1829 阅读 · 4 评论