- 博客(13)
- 收藏
- 关注
原创 位运算的算法题
题目描述 实现一个算法,确定一个字符串 s 的所有字符是否全都不同。如果你不使用额外的数据结构,会很加分。(力扣题.)方法一:用HashSet或者数组 检验发现只可能出现小写a-z这么多字母,只需要一个26大小的布尔数组即可。//用数组 public boolean isUnique1(String astr) { boolean[] flag = new boolean[26]; for (int i = 0; i < 26; i++) {
2022-02-21 21:16:40 386
原创 LeetCode-400
力扣400:第N位数字目录力扣400:第N位数字1.题目描述2.解题思路3.代码4.写在最后1.题目描述2.解题思路1位数有1 * 9 = 9 个数字2位数有2 * 90 = 180 个数字3位数有3 * 900 = 2700 个数字n位数有n * 9 * pow(10,n-1) 个数字(代码中假设位数是len,也就是len位数) 所以,我们用输入的n,逐次减去对应位数的数字个数,直到不够减为止,就可以得到第n位所在的数是几位数,然后很容易能够得到是该len位数的第 i 个数的第
2021-11-30 22:20:26 619
原创 哈夫曼树的创建
哈夫曼树目录哈夫曼树1. 什么是哈夫曼树2. 创建哈夫曼树2.1 创建树节点TreeNode2.2 构建哈夫曼树2.3 测试1. 什么是哈夫曼树2. 创建哈夫曼树2.1 创建树节点TreeNode//树的节点public class TreeNode { /** * 值 * 左右孩子 */ private int value; public TreeNode left; public TreeNode right; pub
2021-11-05 12:00:43 1411
原创 算法(二) —— 倍增算法实现乘法
倍增算法实现乘法 主要用于以后复习(^-^)!。模板如下://倍增算法写乘法 public long mul(long a,long b){ long sum = 0; while(b>0){ if((b & 1) == 1)//判断b个位是否为0,为0就不乘 sum += a; b >>= 1;//将b右移 a += a;//也就
2021-10-12 17:36:12 712
原创 算法(一) —— 二分模板
算法(一) —— 二分模板 二分的模板有两套,主要的区别是根据判断时,是调整left还是right。模板一: 其中:函数check(),表示判断mid的条件//假设需要二分的区间是 [a,b]int left = a, right = b;while(left<right){ int mid = (left + right + 1)>>1; //其实就是int mid = left + (right-left)/2 + 1; if(check(mid)){ lef
2021-10-12 17:08:04 216
原创 浩gg教你学Java(六)——进程,线程,并行,并发(多线程第一课)
多线程第一课:进程、线程,并行,并发目录多线程第一课:进程、线程,并行,并发1.基本概念2.总结1.基本概念进程 进程可以理解为一个在内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程可以有多个线程。比如说在我们常用的Windows系统中,一个以exe结尾的程序就是一个进程。任务管理器中的进程:线程 线程又被称为轻型进程或进程元。线程可以看做是每一个进程所要执行的一个个任务,因此一个进程可以有一个线程,一个进程也可以有很多很多线程多个线程之间是共享数据的。 同时
2021-09-20 11:39:41 99
原创 浩gg教你学Java(五) ——用HashCode对象排序(简述哈希表)
HashCode对象排序目录HashCode对象排序1.什么是HashCode(简述哈希表)2.常见数据类型的hashCode()方法2.1 整型Integer类2.2 Object类2.3 String类3.对象排序1.什么是HashCode(简述哈希表) 哈希表是底层很常用的一种结构,它可以弥补数组的一些不足之处。举个简单的例子: 假设我有10000张卡片,分别放在10000个盒子里面;现在,我想要找出任意一张我想要的卡片,对于数组来说,那我们就得一个盒子一个盒子地遍历,最坏要遍历10000次才
2021-08-24 19:07:26 918
原创 直接输出Object类的对象会发生什么?
直接输出Object类的对象 最近在写我hashcode博客的时候,想到了一个问题,如果直接输出object类的对象,会发生什么?public class TestHashCode { public static void main (String[] args) { Object obj = new Object(); System.out.println (obj); System.out.println (obj.hashCode());
2021-08-24 16:02:49 418
原创 浩gg教你学Java(四) ——数组队列MyArrayList
自写ArrayList(一)目录自写ArrayList(一)1.引言2.实现前的分析3.具体实现3.1创建MyList接口3.2创建MyArrayList类4.简单运行测试1.引言 我们为什么需要ArrayList这样的数据结构呢?这就得从我们的普通数组说起。假如说我们定义一个普通数组: //整型 int[] array = new int[10]; 我们可以发现,在申请这个一维整型数组的时候,必须声明这个数组的长度,声明之后这个数组的长度就不能改变了,也就是定长。然后,我们在使用数组下标
2021-08-20 09:45:19 219
原创 java学习笔记(三)——数据类型
数据类型目录数据类型1.基本数据类型、引用数据类型2.二者区别3.几个问题1.基本数据类型、引用数据类型 在java中数据类型主要可以分成基本数据类型和引用数据类型。(1)八大基本数据类型:(‘|’后面是每种数据类型占的bit位数,也就是二进制位数)整数型:byte short int long | 8 16 32 64浮点型:float double | 32 64字符型:char | 16布尔型:boolean | 8每个基本数据类型都有一个对应的包
2021-08-14 16:23:09 208
原创 java学习笔记(二)——接口interface
接口 interface目录接口 interface1.引言1.引言 接口在java中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。
2021-08-14 12:18:16 443
原创 java学习笔记(一)——面向对象
类与对象目录类与对象1.引言2.创建对象3.类的结构4.命名规范1.引言 (1)类:我们常见的类有,人类,计算机类等等。那么我们给类下个定义:具有相同、相似的属性特征、行为方式功能的一类事物的信息描述。也有人认为是集合,但我觉得描述更恰当一点,因为集合给人的感觉就是一个个具体的事物放在一起,但是类创建的对象可以是无穷多个,它更像是对创建对象时的一种约束,所以我觉得用描述好一些。 (2)对象:这里的对象当然不是象棋里的对象(O(∩_∩)O哈哈~),我们可以认为是某个具体的事物,比如说正在写blog
2021-08-12 12:48:38 184
原创 Java图像处理(后面会补充PS啥的)
图像处理方法java目录图像处理方法java1.引言1.引言 初学java,想做一个简易的美颜相机,对图像处理的一些方法进行了相应的学习。主要包括图像的原理、图像的数据处理、位运算、滤镜效果、图片读写等。...
2021-08-09 23:45:13 1917 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人