自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

...

  • 博客(27)
  • 资源 (1)
  • 收藏
  • 关注

原创 Java中的反射

反射反射库(reflection library)提供了一个丰富且精巧的工具集,可以用来编写能够动态操纵Java代码的程序。能够分析类能力的程序称为反射(reflective)。Class类在程序运行期间,Java运行时系统始终为所有对象维护一个运行时类型标识 。这个信息会跟踪每个对象所属的类。虚拟机利用运行时类型信息选择要执行的正确的方法。保存这些信息的类名为Class。获得Class对象的三种方式:Object类中的getClass方法将会返回一个Class类型的实例。Employee

2021-02-28 15:55:16 211 2

原创 Java中的枚举类

public enum Size {SMALL,MEDIUM,LARGE,EXTRA_LARGE}这个声明定义的类型是一个类,它刚好有4个实例,不可能构造新的对象。在比较两个枚举类型的值时,并不需要调用equals,直接使用“==”就可以了。如果需要的话,可以为枚举类型增加构造器、方法和字段:public enum Size { SMALL("S"), MEDIUM("M"), LARGE("L"), EXTRA_LARGE("XL"); private String abbreviatio

2021-02-27 16:27:46 96

原创 Java中所有类的超类Object

Object类是Java中所有类的始祖,在Java中每个类都扩展了Object。Object类型的变量可以使用Object类型的变量引用任何类型的对象:Object obj = new Employee("Q",35000);当然,Object类型的变量只能用于作为各种值的一个泛型容器。要想对其中的内容进行具体的操作,还需要清楚对象的原始类型,并进行相应的强制类型转换:Employee e = (Employee) obj;在Java中,只有基本类型不是对象,例如,数值、字符和布尔类型的值都

2021-02-27 15:23:28 538

原创 Java中的4个访问控制修饰符权限

Java中的4个访问控制修饰符:仅对本类可见——private。对外部完全可见——public。对本包和所有子类可见——protected。对本包可见——默认,不需要修饰符。

2021-02-27 09:45:10 266

原创 Java中的方法调用过程

假设调用x.f(args),隐式参数x声明为类C的一个对象。下面是调用过程的详细描述:编译器查看对象的声明类型和方法名。需要注意的是:有可能存在多个名字为f但参数类型不一样的方法。例如,可能存在方法f(int)和方法f(String)。编译器将会一一列举C类中所有名为f的方法和其超类中所有名为f而且可访问的方法(超类的私有方法不可访问)。接下来,编译器要确定方法调用中提供的参数类型。如果在所有名为f的方法中存在一个与所提供参数类型完全匹配的方法,就选择这个方法。这个过程称为重载解析 (overload

2021-02-27 09:05:17 396

原创 Java总是采用按值调用

参数传递给方法的有两种形式:按值调用(call by value):表示方法接收的是调用者提供的值。按引用调用(call by reference):表示方法接收的是调用者提供的变量地址。Java总是采用按值调用。也就是说方法得到的是所有参数值的一个副本。具体来将,方法不能修改传递给它的任何参数变量的内容。有两种类型的方法参数:基本数据类型(数字、布尔值)。对象引用。当方法参数为基本数据类型的情况:假定一个方法试图将一个参数值增加至3倍:public static void tri

2021-02-26 14:58:47 155

原创 Java中的静态字段、静态常量与静态方法

静态字段如果将一个字段定义为static,每个类只有一个这样的字段。而对于非静态的实例字段,每个对象都有自己的一个副本。静态字段属于类,而不属于任何单个的对象。在一些面向对象程序设计语言中,静态字段被称为类字段。class Employee { private static int nextId = 1; private int id;}静态常量静态变量使用得比较少,但静态常量却很常用。例如,在Math类中定义一个静态常量:public class Math { public st

2021-02-26 10:39:53 624 1

原创 使用LocalDate类来显示当前月的日历

LocalDate类简介java.time.LocalDatestatic LocalDate now():构造一个表示当前日期的对象。static LocalDate of(int year, int month, int day):构造一个表示给定日期的对象。int getYear()int getMonthValue()int getDayOfMonth():得到当前日期的年、月和日。DayOfWeek getDayOfWeek():得到当前日期是星期几,作为DayOfWeek类的一个

2021-02-26 09:17:10 517 1

原创 Java中的大数

如果基本的整数和浮点数精度不能够满足需求,那么可以使用java.math包中两个很有用的类:BigInteger和BigDecimal。这两个类可以处理包含任意长度数字序列的数值。BigInteger类实现任意精度的整数运算,BigDecimal实现任意精度的浮点数运算。使用静态的valueOf方法可以将普通的数值转换为大数:BigInteger a = BigInteger.valueOf(100);对于更大的数,可以使用一个带字符串参数的构造器:BigInteger reallyBig = n

2021-02-21 16:45:18 645

原创 Java中的字符串

从概念上讲,Java字符串就是Unicode字符序列。Java没有内置的字符串类型,而是在标准Java类库中提供了一个预定义类,很自然地叫做String。每个用双引号括起来的字符串都是String类的一个实例。不可变字符串String类没有提供修改字符串中某个字符的方法。由于不能修改Java字符串中的单个字符,所以在Java文档中将String类对象称为是不可变的(immutable)。不可变字符串有一个优点:编译器可以让字符串共享 。可以想象将各种字符串存放在公共的存储池中。字符串变量指向存储池中相应

2021-02-21 16:02:47 168

原创 Java中的数据类型

Java是一种强类型语言。这就意味着必须为每一个变量声明一种类型。在Java中,一共8种基本类型(primitive type),其中有4种整型、2种浮点类型、1种字符类型和一种用于表示真值的boolean类型。Java有一个能够表示任意精度的算术包,通常称为“大数”(big number)。虽然被称为大数,但它并不是一种基本Java类型,而是一个Java对象。整型整型用于表示没有小数部分的数值,允许是负数。Java提供了4种整型:类型存储需求取值范围int4字节-21

2021-02-21 10:32:46 129

转载 67题-把字符串转换成整数

1 题目描述写一个函数 StrToInt,实现把字符串转换成整数这个功能。不能使用 atoi 或者其他类似的库函数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可以被忽略,它们对于函数不应该造成影响。注意:假如该字符串

2021-02-02 17:56:57 252

转载 66题-构建乘积数组

1 题目描述给定一个数组 A[0,1,…,n-1],请构建一个数组 B[0,1,…,n-1],其中 B[i] 的值是数组 A 中除了下标 i 以外的元素的积, 即 B[i]=A[0]×A[1]×…×A[i-1]×A[i+1]×…×A[n-1]。不能使用除法。示例:输入: [1,2,3,4,5]输出: [120,60,40,30,24]提示:所有元素乘积之和不会溢出 32 位整数a.length <= 1000002 解题思路本题的难点在于不能使用除法,即需要只用乘法生成数组B。根

2021-02-02 17:12:19 87

转载 64题-求1+2+...+n

1 题目描述求 1+2+…+n ,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。示例1:输入: n = 3输出: 6示例2:输入: n = 9输出: 452 解题思路逻辑运算符的短路效应:常见的逻辑运算符有三种,即“与&&”,“或||”,“非!”;而其有重要的短路效应,如下所示:if(A && B) // 若 A 为 false ,则 B 的判断不会执行(即短路),直接判定 A

2021-02-02 16:49:36 170

转载 【动态规划】63题-股票的最大利润

1 题目描述假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?示例1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。示例2:输入: [7,6,4,3,1]输出: 0解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。限制:0 <

2021-02-02 16:33:11 629

转载 【二叉树】68题-二叉树的最近公共祖先

1 题目描述给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉树: root = [3,5,1,6,2,0,8,null,null,7,4]示例1:输入: root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1输出: 3解释: 节点 5 和节点

2021-02-02 15:39:55 111

转载 【二叉树】68题-二叉搜索树的最近公共祖先

1 题目描述给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]示例1:输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8输出: 6 解释:

2021-02-02 11:00:55 191

转载 【位运算】65题-不用加减乘除做加法

1 题目描述写一个函数,求两个整数之和,要求在函数体内不得使用 “+”、“-”、“*”、“/” 四则运算符号。示例:输入: a = 1, b = 1输出: 2提示:a, b 均可能是负数或 0结果不会溢出 32 位整数2 解题思路本题考查对位运算的灵活使用,即使用位运算实现加法。设两数字的二进制形式a,b,其求和s=a+b,a(i)代表a的二进制第i位,则分为以下四种情况:a(i)b(i)无进位和n(i)进位c(i+1)00000110

2021-02-02 10:24:32 136 1

转载 62题-圆圈中最后剩下的数字

1 题目描述0,1,···,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字(删除后从下一个数字开始计数)。求出这个圆圈里剩下的最后一个数字。例如,0、1、2、3、4这5个数字组成一个圆圈,从数字0开始每次删除第3个数字,则删除的前4个数字依次是2、0、4、1,因此最后剩下的数字是3。示例1:输入: n = 5, m = 3输出: 3示例2:输入: n = 10, m = 17输出: 2限制:1 <= n <= 10^51 <= m &l

2021-02-02 09:57:19 206

转载 61题-扑克牌中的顺子

1 题目描述从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。示例1:输入: [1,2,3,4,5]输出: True示例2:输入: [0,0,1,2,5]输出: True限制:数组长度为 5 数组的数取值为 [0, 13] .2 解题思路根据题意,此5张牌是顺子的充分条件如下:除大小王外,所有牌无重复;设此5张牌中最大的牌为max,最小的

2021-02-02 08:28:53 202 1

转载 【动态规划】60题-n个骰子的点数

1 题目描述把n个骰子扔在地上,所有骰子朝上一面的点数之和为s。输入n,打印出s的所有可能的值出现的概率。你需要用一个浮点数数组返回答案,其中第 i 个元素代表这 n 个骰子所能掷出的点数集合中第 i 小的那个的概率。示例1:输入: 1输出: [0.16667,0.16667,0.16667,0.16667,0.16667,0.16667]示例2:输入: 2输出: [0.02778,0.05556,0.08333,0.11111,0.13889,0.16667,0.13889,0.1111

2021-02-01 17:39:35 367

转载 58题-左旋转字符串

1 题目描述字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例1:输入: s = "abcdefg", k = 2输出: "cdefgab"示例2:输入: s = "lrloseumgh", k = 6输出: "umghlrlose"限制:1 <= k < s.length <= 100002 解题思路方法1

2021-02-01 16:08:48 94

转载 57题-和为s的连续正数序列

1 题目描述输入一个正整数 target ,输出所有和为 target 的连续正整数序列(至少含有两个数)。序列内的数字由小到大排列,不同序列按照首个数字从小到大排列。示例1:输入:target = 9输出:[[2,3,4],[4,5]]示例2:输入:target = 15输出:[[1,2,3,4,5],[4,5,6],[7,8]]2 解题思路方法1:枚举+暴力枚举每个正整数为起点,判断以它为起点的序列和sum是否等于target即可,由于题目要求序列长度至少大于2,所以枚举的上界

2021-02-01 15:50:47 136

转载 57题-和为s的两个数字

1 题目描述输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。示例1:输入:nums = [2,7,11,15], target = 9输出:[2,7] 或者 [7,2]示例2:输入:nums = [10,26,30,31,47,60], target = 40输出:[10,30] 或者 [30,10]限制:1 <= nums.length <= 10^51 <= nums[i] <=

2021-02-01 11:07:02 157

原创 【二分查找】53题-0~n-1中缺失的数字

1 题目描述一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。示例1:输入: [0,1,3]输出: 2示例2:输入: [0,1,2,3,4,5,6,7,9]输出: 8限制:1 <= 数组长度 <= 100002 解题思路方法1:遍历class Solution { public int missingNumber(int[] nums) {

2021-02-01 10:34:50 225

原创 【二分查找】53题-在排序数组中查找数字I

1 题目描述统计一个数字在排序数组中出现的次数。示例1:输入: nums = [5,7,7,8,8,10], target = 8输出: 2示例2:输入: nums = [5,7,7,8,8,10], target = 6输出: 0限制:0 <= 数组长度 <= 500002 解题思路方法1:遍历+索引class Solution { public int search(int[] nums, int target) { Map<Int

2021-02-01 09:45:31 221

转载 【动态规划】49题-丑数

1 题目描述我们把只包含质因子 2、3 和 5 的数称作丑数(Ugly Number)。求按从小到大的顺序的第 n 个丑数。示例:输入: n = 10输出: 12解释: 1, 2, 3, 4, 5, 6, 8, 9, 10, 12 是前 10 个丑数。说明:1 是丑数。n 不超过1690。2 解题思路动态规划解题思路:丑数的递推性质:丑数只包含因子2,3,5,因此有“丑数=某较小丑数×某因子丑数=某较小丑数\times某因子丑数=某较小丑数×某因子”(例如:10=5×210=5

2021-02-01 08:39:40 279

cpu的verilogHDL的简易实现

用verilogHDL实现简易功能的CPU,有寄存器、运算器、内存、控制器等功能。

2017-12-01

空空如也

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

TA关注的人

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