自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 剑指 Offer 35. 复杂链表的复制题解

刷题记录

2022-06-07 17:38:10 55

原创 哈希表与哈希函数自用笔记

哈希函数与哈希表哈希函数的性质哈希函数不随机,只要是相同的输入参数,结果一定相同.定义上哈希函数输入域无穷,输出域有穷.哈希碰撞为不同输入产生相同输出,哈希碰撞产生概率极低.哈希函数的应用现在有一个大文件,其中全为无符号整数0~2^32-1,现在你仅有1g内存,请寻找其中出现次数最多的无符号整数题解分析可得改文件要直接存入哈希表中需要32g内存,所以不可直接用暴力解法,在文件处理上我们可以使用哈希函数的性质,先将文件均匀分类再模100可以得到100个子文件,由于哈希函数的性质,同一个数会被分

2022-05-23 16:31:09 86

原创 算法中的一些数学问题分享,ICG游戏

1,石子游戏题目出处https://leetcode-cn.com/problems/stone-game/亚历克斯和李用几堆石子在做游戏。偶数堆石子排成一行,每堆都有正整数颗石子 piles[i] 。游戏以谁手中的石子最多来决出胜负。石子的总数是奇数,所以没有平局。亚历克斯和李轮流进行,亚历克斯先开始。 每回合,玩家从行的开始或结束处取走整堆石头。 这种情况一直持续到没有更多的石子堆为止,此时手中石子最多的玩家获胜。假设亚历克斯和李都发挥出最佳水平,当亚历克斯赢得比赛时返回 true ,当李赢

2021-10-31 13:57:40 1966

原创 2021-07-26hashmap的的实现

节点public class Node<T, V> { T key; V value; Node<T, V> next; public Node(T key, V value) { this.key=key; this.value = value; } public Node() { }}链表package shoudongshixianHashMap;public class

2021-07-26 21:59:03 56

原创 网络聊天室

客户端package wangluobiancheng.wangluoliaotianshi;import java.io.*;import java.net.Socket;public class MyClient { public static void main(String[] args) throws IOException { Socket s= new Socket("192.168.1.229",30000); new Thread(new

2021-07-26 21:29:02 80

原创 多线程死锁

package Thread_;public class From1to100 { public static void main(String[] args) { SyncStack ss = new SyncStack(); B b =new B(ss); A a =new A(ss); C c =new C(ss); b.start(); a.start(); c.start()

2021-07-26 21:27:33 47

原创 多线程打印1到00

package Thread_;public class From1to100 { public static void main(String[] args) { SyncStack ss = new SyncStack(); B b =new B(ss); A a =new A(ss); C c =new C(ss); b.start(); a.start(); c.start()

2021-07-26 21:27:00 54

原创 自用多线程笔记2021.7.21

1,创建多线程的多种方式通过继承Thread类实现多线程public class TestThread extends Thread {//自定义类继承Thread类 //run()方法里是线程体 public void run() { for (int i = 0; i < 10; i++) { System.out.println(this.getName() + ":" + i);//getName()方法是返回线程名称

2021-07-21 10:13:40 44

原创 java参数传值机制笔记2021.1.3

参数传值机制Java中,方法中所有参数都是“值传递”,也就是“传递的是值的副本”。 也就是说,我们得到的是“原参数的复印件,而不是原件”。因此,复印件改变不会影响原件。注意!传递的是值的副本。**但是引用类型指的是“对象的地址”。**因此,副本和原参数都指向了同一个“地址”,改变“副本指向地址对象的值(常出现在数组改变值中),也意味着原参数指向对象的值也发生了改变”。public class User4 { int id; //id String name; //账户

2021-01-03 22:36:17 101

原创 静态初始化块笔记2020.12.22

public class User3 { int id; //id String name; //账户名 String pwd; //密码 static String company; //公司名称 static { System.out.println("执行类的初始化工作"); company = "北京尚学堂"; printCompany(); } public stati

2020-12-22 15:56:33 51

原创 static关键字笔记2020.12.22

在类中,用static声明的成员变量为静态成员变量,也称为类变量。 类变量的生命周期和类相同,在整个应用程序执行期间都有效。要点1-static修饰的成员变量和方法,从属于类。普通变量和方法从属于对象的。2-可以在普通方法里调用静态方法,使用静态变量,但不可在静态方法中使用普通方法,使用普通变量。public class User2 { int id; // id String name; // 账户名 String pwd; // 密码 static Strin

2020-12-22 15:50:29 60

原创 this关键字笔记 2020.12.20

this关键字普通方法中,this总是指向调用该方法的对象。构造方法中,this总是指向正要初始化的对象。this最常的用法:1.让类中的一个方法,访问该类的另一个方法或属性。2.使用this关键字调用重载构造方法。避免相同的初始化代码,只能在构造方法中用,并且必须位于构造方法的第一句!!!!this不能用于static方法!this不能用于static方法!this不能用于static方法!(this指向当前对象,static方法跟对象没有一毛钱的关系)...

2020-12-20 18:33:37 79

原创 构造方法,垃圾回收机制笔记2020.12.20

要点1-通过new关键字调用。2-构造器有返回值,但是不能定义返回值类型(返回值类型一定是本类),不能在构造器用return返回某个值。3-如果我们没有定义构造器,,则编译器会自己定义一个无参的构造函数。如果已经定义则不会再次添加。4-构造器的方法和类名必须保持一致!5-构造方法重载类似于方法重载。...

2020-12-20 18:08:26 95

原创 java中的简单递归以及面向对象与面向过程的区别12.6

递归的思想通过自己调用自己来实现一些重复性的操作。注意事项一定要有可以结束递归的条件!(定义递归头)简单的递归(阶乘计算)public static long factorial(int n) throws Exception { if (n == 1 || n == 0)//递归头 return 1; else//递归体 return n * factorial(n - 1);}1·递归的优点在于符合人的逻辑思维,但是会占用大量的内存空间。

2020-12-06 20:17:36 59

原创 方法2020.11.29(java)

1.方法的定义方法就是一段用来完成特定功能的代码,类似于其他语言的函数。eg.方法名(参数){执行内容return 返回值}形参用于在方法声名是接受外部的参数。实参为调用方法实际传给其的数据。返回值为方法在执行完毕后返回给调用它的环境的数据、若无返回值必须显示指定为viod。3,调用方法public class HelloWorld{ public static void main(String[] args{ HelloWorld hl = new HelloWo

2020-11-29 20:22:19 88

原创 初学滚动数组

在屏幕上打印杨辉三角void func_roll_array(int *a,int n) { int i,j; for(i=0;i<n-1;i++) printf(" "); printf("%4d\n",a[0]=1); for(i=1;i<n;i++) { for(j=0;j<n-i-1;j++) printf(" "); printf("%4d",a[i]=1); for(j=i-1;j>0;j--) printf("%4d",a[j]

2020-11-22 17:49:03 57

原创 leetcode基础题,两数之和。

题目给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/two-sum自己的做法c

2020-11-22 17:31:19 90

原创 自学笔记

二维数组-三连棋。import java.util.Scanner;public class Tic_Tac_Toe{ public static void main(String[] args) { Scanner in = new Scanner(System.in); final int SIZE = 3; int[][] board = new int[SIZE][SIZE]; System.out.println("Ga

2020-11-15 20:37:14 67

原创 JAVA基础知识学习(选择,循环,数组)11月15日

选择:if1,if语句中括号中为执行条件,只有当括号中值为真时才会运行其下内容。特别注意:else后不加任何条件。2,if语句括号中内容不局限于表达式,也可为n = in.nextInt()或者布尔类型变量。3,if语句后若执行多条语句,应使用花括号将其打包成一个块。4,若是没有花括号,则else与最近的if匹配!5,使用多层嵌套的if else时最好使用花括号,提高代码的可读性。switch1,选择中若是没有break程序会一直执行下去,这种情况通常会出现错误,应尽可能避免。2,若是程

2020-11-15 20:31:36 110

原创 JAVA初学笔记-11月8日

1,安装JDK并配置环境,下载IDEA(b站有破解教程)。笔记2, public class HelloWorld(一个简单的java程序) {public(此为访问修饰符,用于控制程序其他部分对这段代码的访问级别) static void main(String[] args){System.out.println(此为java的换行打印)(“Hello World!”);}}3,java区分大小写,出现大小写拼写错误程序将无法运行。4,源代码的文件名必须与公共类的名字相同,

2020-11-08 18:05:36 110

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除