BM58 字符串的排列 输入一个长度为n字符串,打印出该字符串中字符的所有排列,你可以以任意顺序返回这个字符串数组。 例如输入字符串ABC,则输出由字符A,B,C所能排列出来的所有字符串ABC,ACB,BAC,BCA,CBA和CAB。 数据范围:要求:空间复杂度 ,时间复杂度  输入描述: 输入一个字符串,长度不超过10,字符只包括大小写字母。 输入: "ab" 返回值: ["ab","ba"] 说明: 返回["ba","ab"]也是正确的 输入: "aab" 返回值: ["aab","aba","baa"] 输入: "abc" 返...

BM61 矩阵最长递增路径 描述: 给定一个n行m 列矩阵matrix ,矩阵内所有数均为非负整数。你需要在矩阵中找到一条最长路径,使这条路径上的元素是递增的。并输出这条最长路径的长度。 这个路径必须满足以下条件: 1.对于每个单元格,你可以往上,下,左,右四个方向移动。你不能在对角线方向上移动或移动到边界外。 2.你不能走重复的单元格。即每个格子最多只能走一次。 数据范围:, 进阶:空间复杂度  ,时间复杂度  例如:当输入为[[1,2,3],[4,5,6],[7,8,9]]时,对应的输出为5, 其中的一条最长递增路径如下图所示...

  A4PAi5jvsjgM   2023年11月25日   32   0   0 sed递归sed递归MathMath

递归是一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。因此递归过程,最重要的就是查看能不能将原本的问题分解为更小的子问题,这是使用递归的关键。 如果是线型递归,子问题直接回到父问题不需要回溯,但是如果是树型递归,父问题有很多分支,我需要从子问题回到父问题,进入另一个子问题。因此回溯是指在递归过程中,从某一分支的子问题回到父问题进入父问题的另一子问题分支,因为有时候进入第一个子问题的时候修改过一些变量,因此回溯的时候会要求改回父问题时的样子才能进入第二子问题分支。 1、BM55 没有重复项数字的全...

1、二分查找(binarysearch) 二分查找(binarysearch),也称折半搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。 时间复杂度:折半搜索每次把搜索区域减少一半,时间复杂度为O(logn)。(n代表集合中元素的个数) 空间复杂度:O(1)。虽以递归形式定义,但是尾递归,可改写为循环。 动图演示...

BM18 二维数组中的查找 描述 在一个二维数组array中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 [ [1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15] ] 给定target =7,返回 true。 给定 target = 3,返回 false。 输入: 7,[[1,2,8,9],[2,4,9,12],[4,7,10,13],[6,8,11,15...

计数排序的核心在于将输入的数据值转化为键存储在额外开辟的数组空间中。作为一种线性时间复杂度的排序,计数排序要求输入的数据必须是有确定范围的整数。 1.计数排序的特征 当输入的元素是n个0到k之间的整数时,它的运行时间是Θ(n+k)。计数排序不是比较排序,排序的速度快于任何比较排序算法。 由于用来计数的数组C的长度取决于待排序数组中数据的范围(等于待排序数组的最大值与最小值的差加上1),这使得计数排序对于数据范围很大的数组,需要大量时间和内存。例如:计数排序是用来排序0到100之间的数字的最好的算法,但是它不适合按字母顺序排序人名。但是,计数排序可以用在基数排序中的算法来排序数据范围很大的数组。...

那么什么是方法呢? Java方法是语句的集合,它们在一起执行一个功能。 方法是解决一类问题的步骤的有序组合 方法包含于类或对象中 方法在程序中被创建,在其他地方被引用 方法的命名规则 1.方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头写,不使用连接符。例如:addPerson。 2.下划线可能出现在JUnit测试方法名称中用以分隔名称的逻辑组件。一个典型的模式是:test<MethodUnderTest>_<state>,例如 testPop_emptyStack。 形参&实参 方法的定义可能会用到参数(有参的方法)...

  A4PAi5jvsjgM   2023年11月19日   17   0   0 父类子类System

Interface接口简介 接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。 接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。 接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。 接口与类的区别: 接口不能用于实例化对象。 接口没有构造方法。 接口中所有的方法必须是抽象方法,Java8之后接口中可以使用default关键字修饰的非抽象方法。 ...

  A4PAi5jvsjgM   2023年11月19日   16   0   0 抽象类静态方法System

ArrayList介绍 ArrayList 的底层是数组队列,相当于动态数组。与Java中的数组相比,它的容量能动态增长。 ArrayList类位于java.util包中,使用前需要引入它,语法格式如下: importjava.util.ArrayList;//引入ArrayList类 ArrayList<E>objectName=newArrayList<>(); //初始化 E:泛型数据类型,用于设置objectName的数据类型,只能为引用数据类型。 objectName:对象名。 ArrayList<Integer>objectN...

  A4PAi5jvsjgM   2023年11月19日   20   0   0 数组SystemJava

链表(Linkedlist)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的地址。经常被拿来和 ArrayList 做比较。关于 LinkedList 和ArrayList的详细对比 双向链表 不过,我们在项目中一般是不会使用到LinkedList的,需要用到LinkedList的场景几乎都可以使用ArrayList来代替,并且,性能通常会更好!就连LinkedList的作者约书亚·布洛克(JoshBloch)自己都说从来不会使用LinkedList。 著作权归JavaGuide(javag...

  A4PAi5jvsjgM   2023年11月19日   11   0   0 html存储数据Java

HashMap简介 HashMap是一个散列表,它存储的内容是键值对(key-value)映射。 HashMap实现了Map接口,根据键的HashCode值存储数据,具有很快的访问速度,最多允许一条记录的键为null,不支持线程同步。 HashMap是无序的,即不会记录插入的顺序。 HashMap继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接口。 HashMap的key与value类型可以相同也可以不同,可以是字符串(String)类型的key和value,也可以是整型(Integer)的key和字符串(String)类型的value...

  A4PAi5jvsjgM   2023年11月19日   19   0   0 Google键值对Java

HashSet简介 HashSet基于HashMap来实现的,是一个不允许有重复元素的集合。 HashSet允许有null值。 HashSet是无序的、不重复的,即不会记录插入的顺序。 HashSet不是线程安全的,如果多个线程尝试同时修改HashSet,则最终结果是不确定的。您必须在多线程访问时显式同步对HashSet的并发访问。 HashSet实现了Set接口。 HashSet中的元素实际上是对象,一些常见的基本类型可以使用它的包装类。 基本类型 引用类型 boolean Boolean byte Byte short Short int Integer ...

  A4PAi5jvsjgM   2023年11月19日   28   0   0 GoogleSystemJava

-----生命如同寓言,其价值不在于长短,而在于内容。 正则表达式定义了字符串的模式。 正则表达式可以用来搜索、编辑或处理文本。 正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。 1、正则表达式语法 元字符 描述 \ 将下一个字符标记符、或一个向后引用、或一个八进制转义符。例如,“\\n”匹配\n。“\n”匹配换行符。序列“\\”匹配“\”而“\(”则匹配“(”。即相当于多种编程语言中都有的“转义字符”的概念。 ^ 匹配输入字符串的开始位置。如果设置了RegExp对象的Multiline属性,^也匹配“\n”或“\r”之后的位置。 $ 匹配输入字符...

  A4PAi5jvsjgM   2023年11月19日   19   0   0 Windows正则表达式字符串

this关键字 this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。在java中,这是一个引用当前对象的引用变量。 javathis关键字的用法如下: this关键字可用来引用当前类的实例变量。 this关键字可用于调用当前类方法(隐式)。 this()可以用来调用当前类的构造函数。 this关键字可作为调用方法中的参数传递。 this关键字可作为参数在构造函数调用中传递。 this关键字可用于从方法返回当前类的实例。 //更多请阅读:https://www.yiibai.com/java/this-keyword.html 1.this:引用当前类的实例变量 如...

选择排序是一种简单直观的排序算法,无论什么数据进去都是O(n²)的时间复杂度。所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间了吧。 1.算法步骤 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。 再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。 重复第二步,直到所有元素均排序完毕。 2.动图演示 代码实现 Java代码实现 publicclassSelectionSortimplementsIArraySort{ @Override publicint[]sort(int[]sourceArray)throwsExce...

一般地,当需要使用数字的时候,我们通常使用内置数据类型,如:byte、int、long、double 等。 然而,在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型的情形。为了解决这个问题,Java语言为每一个内置数据类型提供了对应的包装类。 所有的包装类(Integer、Long、Byte、Double、Float、Short)都是抽象类Number的子类。 包装类 基本数据类型 Boolean boolean Byte byte Short short Integer int Long long Character char ...

Java语言提供了很多修饰符,主要分为以下两类: 访问修饰符 非访问修饰符 1、访问控制修饰符 Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java支持4种不同的访问权限。 default (即默认,什么也不写):在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。 private :在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类) public :对所有类可见。使用对象:类、接口、变量、方法 protected :对同一包内的类和所有子类可见。使用对象:变量、方法。 ...

1、if...else语句 Java中的条件语句允许程序根据条件的不同执行不同的代码块。一个if语句包含一个布尔表达式和一条或多条语句。 if语句用于测试条件。它检查布尔条件为:true或false。 如果布尔表达式的值为true,则执行if语句中的代码块,否则执行else语句块后面的代码。 java中有各种类型的if语句,它们分别如下: if语句 if-else语句 嵌套if语句 if-else-if语句 if...else语句 if语句后面可以跟else语句,当if语句的布尔表达式值为false时,else语句块会被执行。 if…else的用法如下: if(布尔表达式){ //如...

对象&类 对象:对象是类的一个实例(对象不是找个女朋友),有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。 类:类是一个模板,它描述一类对象的行为和状态。 java命名约定的优点 通过使用标准的Java命名约定,您可以使自己和其他程序员更容易阅读代码。Java程序的可读性非常重要。它能让程序开发者花费更少的时间来读懂代码的作用。 名称 约定 类名称 应以大写字母开头,并成为容易理解的名词或组合。如:String,Color,Button,System,Thread等。 接口名称 应以大写字母开头,并作为形容词。如...

  A4PAi5jvsjgM   2023年11月05日   24   0   0 构造函数实例变量System

Java语言提供了很多修饰符,主要分为以下两类: 访问修饰符 非访问修饰符 1、访问控制修饰符 Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java支持4种不同的访问权限。 default (即默认,什么也不写):在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。 private :在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类) public :对所有类可见。使用对象:类、接口、变量、方法 protected :对同一包内的类和所有子类可见。使用对象:变量、方法。 ...

关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~