自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 一文彻底解决双指针问题

1.算法思想双指针主要用于遍历数组,俩指针指向不同的元素,彼此协同完成计算。主要包括:左右指针与快慢指针1. 左右指针167.两数之和给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。说明:返回的下标值(index1 和 index2)不是从零开始的。你可以假设每个输入只对应唯一的答案,而且你不可以重复使用相同的元素。示例:输入: numbers = [2, 7

2020-12-21 23:25:35 566

原创 一文快速掌握二分查找(解题思路与基本模板)

二分查找是计算机科学中最基本、最有用的算法之一。它描述了在有序集合中搜索特定值的过程。二分法的常用术语为1.target目标值2.index目标的索引3.left、right、mid三个索引二分法的精髓在于,每次运算可以去除一半的不符合条件的元素。很大程度的减小了时间复杂度二分法解题步骤:1.预处理过程(将无序数组排序成有序数组)2.二分查找(找到合适的判断条件,每次可以筛选掉一半的不符合条件的元素)3.后处理过程(不断查找直到找到目标值)二分查找基本模板public int bin

2020-12-11 19:35:03 238

原创 动态规划问题相关解法

动态规划该算法的简单概括就是:记住你之前做过的事算法流程:1)问题拆解,找到问题之间的具体联系2)状态定义3)递推方程推导4)实现例题1:爬楼梯(LeetCode 第 70 号问题)。题目描述:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。解题思路:1)到达第n阶的方法数为第n-1和第n-2种方法之和2) 第i个状态定义成到 i 阶台阶的方法数3) a[n]=a[n-1]+a

2020-12-06 21:44:31 112

原创 最简单的文字与代码——了解七大排序算法

排序算法是最基础的算法之一1.冒泡排序从第一个元素开始比较相邻元素,若第一个元素比第二个大,则交换他们的顺序重复操作直到最后一个元素,一组操作下来最后一个元素是这组元素的最大值重复上述操作,除了最后一个元素直到没有元素可以比较,结束排序//已知将要比较的数组arr[],for(int i=1;i<arr.length;i++){ for(int j=0;j<arr.length-i;j++){ //比较相邻元素的大小 if(a[j]>a[j+1]){ i

2020-12-05 23:52:42 419

原创 复杂度分析

算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。不同的算法能得出相同的结果,但是不同的算法所需要消耗的时间和空间是不一样的,所以我们对于算法优劣的衡量主要是从算法所占用的「时间」和「空间」两个维度去考量。时间维度:是指执行当前算法所消耗的时间,我们通常用「时间复杂度」来描述。空间维度:是指执行当前算法需要占用多少内存空间,我们通常用「空间复杂度」来描述。对于时间维度:「 大O符号表示法 」,即 T(n) = O(f(n))。常数阶O(1) --------(普通操作)

2020-12-04 17:01:55 203

原创 IO流总结

1.流的分类(1)按流向分:从文件/网络/内存等(数据源)到程序是”读read”的过程,是”输入input”的过程,处理这样的事务的类统称为”输入流”类。从程序到文件/网络/内存等(数据源)是”写write”的过程,是”输出output”的过程,处理这样的事务的类统称为”输出流”类。(2)按数据处理单位分:字节流:以字节为单位传输数据的流 8bit = 1byte 处理二进制文件,包括mp3,jpg,exe,doc,ppt,pdf…以Stream结尾的都是字节流.字符流:以字符为单位传输数据的流

2020-09-04 19:57:20 143

原创 正则表达式

正则表达式计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。用处:迅速地用极简单的方式达到字符串的复杂控制。正则表达式的一个典型调用Pattern p = Pattern.compile(“a*b”);Matcher m = p.matcher(“aaaaab”);boolean b = m.matches();正则表达式部分表达形式:^为限制开头$为限制结尾^java

2020-09-04 19:42:28 100

原创 Linkedlist相关知识

Linkedlist实现了List接口,底层是一个双向列表。1.相比于ArrayList:修改数据更快(ArratList的底层是数组,而LinkedList是列表)2.适用场景:需要对数据频繁修改操作的场景3.安全性:非同步,线程不安全4.常用方法:get,remove, add5.成员变量:first,last,size...

2020-09-03 22:15:14 56

原创 为什么需要重写tostring方法?

**今天在看《java核心技术》的时候看到这样一段话:强烈建议为自定义的每一个类增加toString方法,这样做不仅自己收益,而且所有使用这个类的程序员也会收益。这是为啥?带着疑惑去了解了一下,整理到了这篇博客里:首先我们看看重写前后打印输出语句的差别叭:重写前:重写后:大家感觉到了嘛,当需要将对象输出到控制台的时候,默认情况下 System.out.println(对象名)或者System.out.println(对象名.toString())输出的格式是类名+@+hashCode,就

2020-08-25 21:20:40 1001

原创 static关键字

新学static修饰符的时候很容易产生一个问题,方法能不能不用static方法去修饰呢?是可以的,见图:我分别用了两个加薪水的方法addsalary1和addsalary2来实验,第一个方法就是加了static修饰符的,它的优点是可以直接调用加薪水的方法而不用新建一个新的对象,而第二个加薪水的方法就需要新建一个新的薪水类对象,然后才能调用新的方法。这里可以看到,static修饰的方法可以直接调用而没有static修饰的方法需要新建对象之后才能调用。结论:用static修饰的方法可以用类名直接调用,没用s

2020-08-23 21:47:36 124

原创 如何理解面向对象程序设计与面向过程程序设计

何为面向对象与面向过程       作为刚接触java的小白,我们会被告知java是一门面向对象的序设计语言,面向对象这个原理使java多么多么优秀巴拉巴拉巴拉,那么很容易就会产生的疑问就是,什么是面向对象的程序设计语言呢?我谈谈我的理解哈(希望有大佬发现不对可以指点指点)       面向对象(java为例),顾名思义就是这门程序的设计就是面向对象进行的。那我们所

2020-08-22 20:25:02 841

原创 如何用电脑的cmd命令编译并运行java程序?

如何用电脑的cmd命令编译并运行java程序?背景:每个刚接触java的小白,都必经的过程就是用cmd命令行去编译和运行java文件,虽然以后有了集成环境之后快捷方便,但对于理解如何编译且运行的角度来讲熟悉cmd操作编译也挺重要的。问题描述:这个地方我相信许多人遇到最多的问题不是编译java文件本身,而是cmd命令。在这个问题上,如果你的java文件所写的位置不在你的默认盘里,比如写在D盘中,那么你需要先用 d: 命令进入d盘,然后才能继续使用cmd命令前进到你的java文件所在的地址中。接着jav

2020-08-21 12:34:30 380

空空如也

空空如也

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

TA关注的人

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