LeetCode-26:删除排序数组中的重复项 发表于 2019-07-05 做法是维护两个指针,一个保留当前有效元素的长度,一个从前往后扫,然后跳过那些重复的元素。因为数组是有序的,所以重复元素一定相邻,不需要额外记录。时间复杂度是O(n),空间复杂度O(1)。代码如下: 12345678910111213141516171819class Solution { ... 阅读全文 »
十.面向过程和面向对象 发表于 2019-07-05 4.1面向过程和面向对象面向过程(Procedure Oriented)和面向对象(Object Oriented,OO)都是对软件分析、设计和开发的一种思想,它指导着人们以不同的方式去分析、设计和开发软件。早期先有面向过程思想,随着软件规模的扩大,问题复杂性的提高,面向过程的弊端越来越明显的显示出 ... 阅读全文 »
六.类型转换 发表于 2019-07-05 自动类型转换自动类型转换指的是容量小的数据类型可以自动转换为容量大的数据类型。如图所示,黑色的实线表示无数据丢失的自动类型转换,而虚线表示在转换时可能会有精度的损失。 至于为什么double类型比long类型表示的范围大请移步double和long类型: 自动类型转换可以将整型常量直接赋值给byt ... 阅读全文 »
五.运算符 发表于 2019-07-05 运算符(operator)计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操作变量。 运算符分类 算术运算符算术运算符中+,-,*,/,%属于二元运算符,二元运算符指的是需要两个操作数才能完成运算的运算符。其中的%是取模运算符,就是我们常说的求余数操作。 ... 阅读全文 »
LeetCode-125:验证回文字符串 发表于 2019-07-05 本题为LeetCode中第125道题,也比较简单 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义为有效的回文串。 示例 1:12输入: "A man, a plan, a canal: Panama"输出 ... 阅读全文 »
LeetCode-206:反转链表 发表于 2019-07-05 本题为LeetCode中第206道题(不是很难,只要数据结构基础可以就行) 反转一个单链表。 示例: 12输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL 进阶: 你可以迭代或递归地反转链表。 ... 阅读全文 »
二.注释 发表于 2019-07-05 注释为了方便程序的阅读,Java语言允许程序员在程序中写上一些说明性的文字,用来提高程序的可读性,这些文字性的说明就称为注释。 注释不会出现在字节码文件中,即Java编译器编译时会跳过注释语句。 在Java中根据注释的功能不同,主要分为单行注释、多行注释和文档注释。 单行注释:使用“//”开头,“ ... 阅读全文 »
八.方法 发表于 2019-07-05 方法方法就是一段用来完成特定功能的代码片段,类似于其它语言的函数。 方法用于定义该类或该类的实例的行为特征和功能实现。 方法是类和对象行为特征的抽象。方法很类似于面向过程中的函数。面向过程中,函数是最基本单位,整个程序由一个个函数调用组成。面向对象中,整个程序的基本单位是类,方法是从属于类和对象的。 ... 阅读全文 »
十二.参数传值机制(干货) 发表于 2019-07-05 4.11 参数传值机制Java中,方法中所有参数都是“值传递”,也就是“传递的是值的副本”。 也就是说,我们得到的是“原参数的复印件,而不是原件”。因此,复印件改变不会影响原件。 基本数据类型参数的传值传递的是值的副本。 副本改变不会影响原件。 引用类型参数的传值传递的是值的副本。但是引用类型指的 ... 阅读全文 »
十三.继承的实现 发表于 2019-07-05 5.1.1继承的实现继承让我们更加容易实现类的扩展。 比如,我们定义了人类,再定义Boy类就只需要扩展人类即可。实现了代码的重用,不用再重新发明轮子(don’t reinvent wheels)。 从英文字面意思理解,extends的意思是“扩展”。子类是父类的扩展。现实世界中的继承无处不在。 ... 阅读全文 »