java
神之落星
劝君莫惜金缕衣,劝君惜取少年时。
展开
-
Java:创建小顶堆与大顶堆
堆的数据结构是二叉树//创建小顶堆与大顶堆Queue<>() queue1 = new PriorityQueue<>(); //创建小顶堆(优先队列),堆顶元素是最小元素Queue<>() queue2 = new PriorityQueue<>(); //创建大顶堆,堆顶元素是最大元素...原创 2021-06-03 09:51:17 · 1497 阅读 · 0 评论 -
java:循环幂余法和快速幂余法(二分求余法)
当求解x的a次幂时,可能会出现大数越界的问题,超出int32位,所以很多题目要求对结果进行1000000007的取余,这个数字在int32的范围之内1000000007的平方超出了int32的范围,但是在long64的范围之内循环幂余法求解x的a次幂int res = 1;int x = 3;int p = 1000000007;for(int i = 0; i < a; i++) { res = (res * x) % p;}return res;该法时间复杂度为线性级别复杂度原创 2021-05-13 15:31:54 · 783 阅读 · 0 评论 -
java:数位和计算
对一个整数的数位和进行计算。如355,3+5+5=13;int sums(int x) int s = 0; while(x != 0) { s += x % 10; x = x / 10; } return s;原创 2021-05-12 10:32:38 · 327 阅读 · 0 评论 -
Java:利用逻辑运算符的短路效应来实现递归的终止(代替if)
常见的逻辑运算符有三种,即 “与 &&&& ”,“或 ||∣∣ ”,“非 !! ” ;而其有重要的短路效应,如下所示:if(A && B) // 若 A 为 false ,则 B 的判断不会执行(即短路),直接判定 A && B 为 falseif(A || B) // 若 A 为 true ,则 B 的判断不会执行(即短路),直接判定 A || B 为 true剑指64题需要实现 “当 n = 1n=1 时终止递归” 的需求,可原创 2021-05-06 12:45:18 · 277 阅读 · 0 评论 -
Java:Integer.MAX_VALUE,Integer.MIN_VALUE
想求最小值时,就将该变量初始化为最大值这个是Integer类中的一个int类型的常量MAX_VALUE它代表int所能表示的最大值 0x7FFFFFFF想求最大值时,就将该变量初始化为最小值相对应的是Integer类中的另一个常量MIN_VALUE它代表int所能表示的最小值 0x80000000...原创 2021-05-05 12:27:21 · 239 阅读 · 1 评论 -
Java:Arrays.fill() 方法
public static void fill(int[] a, int fromIndex, int toIndex, int val)Arrays类的fill() 方法是用来输入给定数组中元素值的。1、两个参数public static void fill(int[] a, int val):给定一个数组,一个val值含义为为数组a进行赋值,使得其所有元素值都为val。2、四个参数public static void fill(int[] a, int fromIndex, int toI原创 2021-05-02 11:07:02 · 9845 阅读 · 1 评论 -
Java:Deque双端队列
Deque是一个双端队列接口,继承自Queue接口,Deque的实现类是LinkedList、ArrayDeque、LinkedBlockingDeque,其中LinkedList是最常用的。双端队列是在两端都可以进行插入和删除的队列。常用方法:新建一个双端队列:Deque deque = new LinkedList();1、判断是否为空: deque.isEmpty()2、增:deque.offerFirst(), deque.offerLast(); //从头添加和尾部添加3、删:dequ原创 2021-04-28 09:21:35 · 271 阅读 · 1 评论 -
Java:剑指59-I的暴力解法
给定一个数组 nums 和滑动窗口的大小 k,请找出所有滑动窗口里的最大值。输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7] 解释: 滑动窗口的位置 最大值--------------- -----[1 3 -1] -3 5 3 6 7 3 1 [3 -1 -3] 5 3 6 7 3 1 3 [-1 -3 5] 3原创 2021-04-27 11:15:07 · 114 阅读 · 0 评论 -
java:String的trim()方法,去除字符串首尾空格
String s = " hfjs df ";s.trim(); //去除首尾空格System.out.println(s); //输出结果"hfjs df"原创 2021-04-26 22:17:19 · 638 阅读 · 0 评论 -
Java:和为s的两个数字,哈希表解法
输入一个数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。与剑指57题类似,但是不要求数组是有序的。 public int[] twoSum(int[] nums, int target) { HashMap<Integer, Integer> map = new HashMap<>(); //第一次循环遍历将数组元素存储到哈希表中 for(int i = 0; i <原创 2021-04-24 22:24:45 · 139 阅读 · 0 评论 -
Java异或运算
异或运算是二进制的位运算。1⊕1=0;0⊕0=0;1⊕0=1;0⊕1=1.。异或运算有以下三个性质。任何数和 0 做异或运算,结果仍然是原来的数,即 a⊕0=a。任何数和其自身做异或运算,结果是 0,即 a⊕a=0。异或运算满足交换律和结合律,即a⊕b⊕a=b⊕a⊕a=b⊕(a⊕a)=b⊕0=b。举例:比如整数3与0进行异或满足第二条性质,即任何数和 0 做异或运算,结果仍然是原来的数。...原创 2021-04-23 20:06:55 · 624 阅读 · 0 评论 -
Java循环中break和continue的区别
break:结束当前整个循环,执行当前循环下边的语句,忽略循环体中任何其它语句和循环条件测试。continue:终止本次循环的执行,即跳过当前这次循环中continue语句后尚未执行的语句,接着进行下一次循环条件的判断。...原创 2021-04-21 09:20:56 · 167 阅读 · 0 评论 -
Java学习:Map的Entry 键值对对象
Map 中存放的是两种对象,一种称为key(键),一种称为value(值),它们在 Map 中是一一对应关系,这一对对象又称做 Map 中的一个 Entry对象 。 Entry 将键值对的对应关系封装成了对象,即键值对对象,这样我们在遍历 Map 集合时,就可以从每一个键值对( Entry )对象中获取对应的键与对应的值。既然Entry表示了一对键和值,那么也同样提供了获取对应键和对应值得方法:public K getKey() :获取Entry对象中的键。public V getValue() :获原创 2021-04-19 16:24:41 · 849 阅读 · 0 评论 -
字符串形式的数字大小比较:String的compareTo()方法
int compareTo() 返回值类型是int,举例使用如下String A = "12", B = "7"A.compareTo(B);当A大于B时,返回值是一个正整数,即大于0; A.compareTo(B) > 0;当A等于B时,返回值是0; A.compareTo(B) == 0;当A小于B时,返回值是一个负整数,即小于0; A.compareTo(B) < 0;通过这个静态方法,就可以实现字符串形式的数字大小比较了...原创 2021-04-16 22:08:44 · 12823 阅读 · 10 评论