涨知识
「已注销」
这个作者很懒,什么都没留下…
展开
-
大整数求和其实很简单!
昨天参加了学校的程序设计大赛,最后一题就是单纯的大整数求和的实现,由于前面做的比较慢,最后没有来得及做,还是有点遗憾的。那么大整数是什么样的数?究竟有多大呢?求和又该怎么样实现?下面分别介绍这几点。## 何为大整数百度百科给出的定义如下:大数在编程中表示超过32位二进制位的数....原创 2018-11-22 11:34:37 · 2249 阅读 · 2 评论 -
一次循环获取数组最小的两个数
很多情况下,我们需要找到一组数中的最小值或者最大值,通过一次循环就可以搞定,那么如果要获取最小的两个数可以吗?只需要稍作变动就可以实现…很多情况下,我们需要找到一组数中的最小值或者最大值,最简单的方法是循环遍历一次,代码实现非常容易(以最小值为例): public static int getMin(int[] values){ int min=values[0]; fo...原创 2019-08-01 16:07:41 · 2109 阅读 · 0 评论 -
创建一个泛型数组会发生什么?
数组的使用频率非常高,我们经常会创建一个数组,无论是基本类型还是引用类型的数组;但是你尝试创建过泛型数组吗?又会发什么什么?尝试创建一个泛型数组如果你使用Java语言,并且尝试创建一个泛型数组;好吧,其实你会发现根本无法创建一个泛型数组,编译器在编译阶段就制止了你的这一行为。数组与泛型不能很好的结合,也不能创建具有泛型类型的数组。其中的原因与泛型的实现机制有关。泛型与类型擦除Java...原创 2019-07-20 23:30:54 · 521 阅读 · 0 评论 -
(旋转数组的)二分查找算法
二分查找算法(Binary Search)是一种高效的、应用广泛的查找算法。它是一种采用分治策略的算法。基本二分查找算法二分查找是针对顺序存储的有序序列的;二分查找的基本思想是:将目标元素与序列中位数比较,如果大于中位数则在右半段序列查找,反之在左半段查找。为了能够方便表示(以升序序列为例),设置两个索引值start,end表示查找范围即下图中的两个灰色箭头,设置一个标记mid表示当前范围...原创 2019-06-17 13:32:21 · 2008 阅读 · 0 评论 -
持有对象-容器类基础
容器类的作用是存储对象(持有对象),它们提供不同的方式保存程序中的对象,常用的容器有ArrayList,LinkedList,HashMap等…Java容器的继承结构橙色框是最常用的几个容器类。容器的基本概念Java容器类类库的用途是保存对象;容器类被划分为两大类:Collection和MapCollectionCollection是独立元素的序列,这些元素的存储都必须遵守一定的...原创 2019-06-14 15:40:25 · 297 阅读 · 0 评论 -
内部类自救指南
内部类是Java的一个重要组成,参考《Java编程思想》一书后,对内部类进行了一些整理…初识内部类内部类是指在类内部定义的类.内部类是一种非常有用的特性,因为它允许你把一些逻辑相关的类组织在一起,并控制位于内部类的可视性。内部类了解外围类,并能与之通信,而且你用内部类写出的代码更加优雅而清晰,尽管并不总是这样。——摘自《Java编程思想》内部类与外围类的通信开始并创建一个内部类...原创 2019-06-08 07:19:15 · 145 阅读 · 0 评论 -
计数排序
认识计数排序计数排序是一种典型的不需要比较的排序方法,它的算法效率高于基于比较的排序算法的效率。计数排序是一种稳定的排序算法。简单计数排序计数排序将待排元素值定义为数组下标,用数组对应的值表示该下标(元素)出现的次数,最后将遍历数组即可得到有序的元素。比如有一组数[4,2,5,1,2,2,4,5,6],由于需要将元素值转换为数组下标,所以需要一个新的数组counting,长度为元素最大值+...原创 2019-05-10 08:39:45 · 380 阅读 · 1 评论 -
单链表环问题?
如何判断单链表是否存在环如果单链表的尾节点的next指针不为null,而指向链表中的某个节点,则称该单链表存在环。比如下图所示的单链表是一个存在环的单链表(请暂时忽略meeting):判断单链表是否存在环有多种方法,比如你可以使用哈希缓存,快慢指针甚至直接暴力的遍历等方法。本文介绍快慢指针法的解决策略。快慢指针法的实现思路如下:定义两个指针:快指针和慢指针;都指向第一个节点快指针...原创 2019-05-03 15:03:31 · 180 阅读 · 0 评论 -
独一无二的单例模式
经典单例模式单例模式被定义为:确保一个类只有一个实例,并提供一个全局访问点。单例模式使得一个类只能有唯一的一个实例,这意味着不能再使用new关键字创建对象,因为一旦可以被new,就可以被多次new。问题1:如何保证一个类只有一个实例?问题2:不能使用new如何获取对象?这两个问题的答案非常简单:由于new对象会调用构造方法,所以只需要将构造方法定义为private(虽然很少这么干,但...原创 2019-04-28 13:28:40 · 151 阅读 · 0 评论 -
IO流与装饰者模式
个人网站:smartpig612.club 微信公众号:SmartPig阅读本篇文章大约花费您8-10分钟装饰者模式的定义:动态的将责任附加到对象身上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。了解装饰者模式装饰者模式的定义:动态的将责任附加到对象身上,若要扩展功能,装饰者提供了比继承更有弹性的替代方案。在定义在提到了几个关键点:动态附加扩展功能比继承更优由此...原创 2019-04-09 16:52:13 · 1085 阅读 · 0 评论 -
String相关的四种字符串类
本篇文章介绍String,StringBuilder,StringBuffer和StringJoner的区别和使用,以及如何进行字符串拼接的常用方法StringString类被final修饰,不可被继承,内部由一个被final字符数组实现,因此String是一个不可变类,这意味着对String的每次修改都会创建新的存储空间,而StringBuilder,StringBuffer都是字符串变量...原创 2019-04-12 10:04:57 · 359 阅读 · 0 评论 -
深入理解HashMap
HashMap介绍HashMap是Java中Map的一个实现类。是一个双列结构,插入和查询的效率都很高;允许null键和null值。HashMap的键唯一,值可以重复,元素存储无序;HashMap是线程不安全的。HashMap是一个散列表。JDK1.8对HashMap使用了红黑树进行优化。HashMap的双列结构HashMap采用数组+链表的双列结构,简单示意图如下:HashM...原创 2019-04-01 09:23:31 · 253 阅读 · 0 评论 -
单链表逆序掌握这两种思路就够了!!!
阅读本篇文章大约花费您4~5分钟! 链表是非常重要的一种数据结构,插入和删除的效率都是O(1),但是查找的效率比较低是O(n)。在单链表中,经常会遇到逆序单链表的题目,虽然听起来很简单,但是要想完整无误的写出代码,还是有很多细节要注意的。 今天给大家介绍两个思路来分析这个问题。 首先我们要知道单链表逆序的本质就是将节点的next指针指向它的前一个节点;并且完成...原创 2019-02-21 23:37:29 · 2745 阅读 · 0 评论 -
从《天行九歌》到海盗问题
阅读本篇文章大约花费您8分钟!今天和大家一起思考一道博弈题:海盗问题。提出海盗问题在国产动画《天行九歌》中,有这样一个场景:在鬼兵盗窃军饷后,公子韩非深入将军府,与大将军姬无夜展开了一场精彩绝伦的对弈,其中涉及到一个分金币的游戏,游戏规则如下:图片中提到的游戏实际上是一道博弈题:海盗问题。分金币是一种变种而已,本质是不变的。题目的一种解法已经在图片中显示出来了。关于海盗问题如何...原创 2019-02-09 21:26:44 · 350 阅读 · 0 评论 -
栈的应用-表达式求值
栈是一种先进后出的数据结构,栈的应用很多,表达式求值问题就是一个典型的应用,包含:括号匹配,中缀/后缀表达式的转换以及后缀表达式求值…括号匹配使用栈,可以检查一个表达式的括号是否匹配,由于只关心括号的成对匹配,而不关心括号的类别,所以假设只包含()。检查括号匹配的算法思路是:① 依次遍历表达式,记录当前字符② 如果当前字符不是括号,继续遍历下一个字符③ 如果当前字符是左括号,入栈...原创 2019-08-15 19:19:51 · 715 阅读 · 0 评论