![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 68
枝江gamer
这个作者很懒,什么都没留下…
展开
-
NC110 旋转数组
描述一个数组A中存有 n 个整数,在不允许使用另外数组的前提下,将每个整数循环向右移 M( M >=0)个位置,即将A中的数据由(A0 A1 ……AN-1 )变换为(AN-M …… AN-1 A0 A1 ……AN-M-1 )(最后 M 个数循环移至最前面的 M 个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?数据范围:0 < n \le 100<n≤10,0 \le m \le 10000≤m≤1000进阶:空间复杂度 O(1)O(1),时间复杂度 O原创 2022-01-07 13:32:53 · 625 阅读 · 0 评论 -
NC49 最长的括号子串
描述给出一个长度为 n的,仅包含字符 '(' 和 ')' 的字符串,计算最长的格式正确的括号子串的长度。例1: 对于字符串 "(()" 来说,最长的格式正确的子串是 "()" ,长度为 2 .例2:对于字符串 ")()())" , 来说, 最长的格式正确的子串是 "()()" ,长度为 4 .字符串长度:0 \le n \le 5*10^50≤n≤5∗105要求时间复杂度O(n)O(n),空间复杂度O(n)O(n).解题思路:我们定义 dp[i] 表示以下标 ...原创 2022-01-02 15:22:04 · 401 阅读 · 0 评论 -
NC6 二叉树中的最大路径和
描述二叉树里面的路径被定义为:从该树的任意节点出发,经过父=>子或者子=>父的连接,达到任意节点的序列。注意:1.同一个节点在一条二叉树路径里中最多出现一次2.一条路径至少包含一个节点,且不一定经过根节点给定一个二叉树的根节点root,请你计算它的最大路径和例如:给出以下的二叉树,最优路径是:2=>1=>3,或者3=>1=>2,最大路径和=2+1+3=6数据范围:节点数满足0 \le n \le 100000≤n≤10000.原创 2021-12-29 11:45:38 · 291 阅读 · 0 评论 -
NC54 数组中相加和为0的三元组
描述给出一个有n个元素的数组S,S中是否有元素a,b,c满足a+b+c=0?找出数组S中所有满足条件的三元组。数据范围:0 \le n \le 10000≤n≤1000,数组中各个元素值满足|val | \le 100∣val∣≤100空间复杂度:O(n^2)O(n2),时间复杂度O(n^2)O(n2)注意:三元组(a、b、c)中的元素必须按非降序排列。(即a≤b≤c) 解集中不能包含重复的三元组。例如,给定的数组 S = {-10 0 10 20 -10 -40},解集为(-..原创 2021-12-21 21:18:16 · 45 阅读 · 0 评论 -
NC22 合并两个有序数组
描述给出一个有序的整数数组 A 和有序的整数数组 B ,请将数组B合并到数组 A 中,变成一个有序的升序数组数据范围:0 \le n,m \le 1000≤n,m≤100,|A_i| <=100∣Ai∣<=100,|B_i| <= 100∣Bi∣<=100注意:1.保证 A 数组有足够的空间存放 B 数组的元素, A 和 B 中初始的元素数目分别为 m 和 n,A的数组空间大小为 m+n2.不要返回合并的数组,将数组B的数据合并到 A 里面就好了3...原创 2021-12-20 13:08:34 · 498 阅读 · 0 评论 -
html知识点
HTML语言特点1、可以设置文本的格式,比如标题、字号、文本的颜色2、超链接,可以使用鼠标点击超链接来实现页面间的跳转3、可以插入图像和媒体4、可以创建表格HTML的标签和属性你查看html代码,会发现html代码中都是<h1>标题</h1>或者<a href=”http://www.baidu.com”>超链接</a>,其中<h1></h1>和<a></a>就是html中的标签,而html是由无数原创 2021-12-19 12:32:17 · 250 阅读 · 0 评论 -
java链表知识点19
判断是否是回文链表:public static class Node{ public int value; public Node next; public Node(int data){ this.value = data; }}//需要n的额外空间:public static boolean isPalindrome1(Node head){ Stack<Node> stack = new Stack<>(); ...原创 2021-12-06 22:40:31 · 359 阅读 · 0 评论 -
java数据结构与算法知识点18
贪心算法:保证每次操作都是局部最优的,从而使最后得到的结果是全局最优的。问题1:甲乙两选手比赛,手中各有一些牌,每个牌面对应一个点数,双方出牌后点数大的赢一手,先给出两位选手手中牌的点数,求出甲最多能赢乙多少手贪心策略:给乙剩余最小的牌面分配能赢的最小的牌num = int(input())a = list(map(int,input().split()))b = list(map(int,input().split()))a = sorted(a)b = sorted(b)a1 = 0b原创 2021-12-05 22:41:30 · 474 阅读 · 0 评论 -
java进程线程,流,网络编程知识点17
程序:是为完成特定任务,用某种语言编写的一组指令的集合,即指一段静态的代码,静态对象进程:是程序的一次执行过程,或是正在运行的一个程序,是一个动态的过程,有它自身的产生,存在和消亡的过程——生命周期。进程作为资源分配的单位,系统在运行时会为每个进程分配不同的内存区域线程:进程可进一步细化为线程,是一个程序内部的一条执行路径,若一个进程同时并行执行多个线程,就是支持多线程的,线程作为调度和执行的单位,每个线程拥有独立的运行栈和程序计数器(pc)一个java应用程序java.exe,至少有三个线程:mai原创 2021-12-04 22:27:08 · 336 阅读 · 0 评论 -
java知识点16
new Integer.valueof()返回的是Integer的对象。Integer.parseInt() 返回的是一个int的值。new Integer.valueof().intValue();返回的也是一个int的值。Integer.valueof(String s)是将一个包装类是将一个实际值为数字的变量先转成string型再将它转成Integer型的包装类对象(相当于转成了int的对象)这样转完的对象就具有方法和属性了。而Integer.parseInt(String s)只是将是数字的原创 2021-12-02 22:42:22 · 202 阅读 · 0 评论 -
java知识点15
子类转父类无需强转。父类转子类,需要强转,并且转换能否成功取决于被转换的对象是否真的是目标类型的一员:class TBase{ int c=5;}public class zhuan extends TBase{ int a=10; public static void main(String[] args) { zhuan z=(zhuan)new TBase(); System.out.println(z.a); Syste...原创 2021-12-01 22:13:54 · 243 阅读 · 0 评论 -
关于short,byte类型a+=b 和 a=a+b 的区别
short a = 1;a += 2;a = 3;//不报错short a = 1;a = a + 2;//报错,short类型与int类型进行运算,结果自动转为int类型,数据类型不一致报错short/byte a = 1;short/byte b = 2;a = a+b;//报错,若为short或byte,即使两个操作数数据类型一样也会报错,编译器进行运算时默认int处理...原创 2021-11-29 20:01:26 · 222 阅读 · 0 评论 -
java基础知识点14
转字符串类型三种方法:将object转成String类型的值。需要注意的是类型必须能转成String类型,(例如Integer类型就不行)否则抛出ClassCastException备注:null值可以强制转换为任何java类类型,(String)null是合法的.toString()java.lang.Object类里已有public方法.toString(),而通常派生类会覆盖Object里的toString()方法,所以对任何java对象都可以调用此方法。必须保证object不是null原创 2021-11-25 22:36:51 · 393 阅读 · 0 评论 -
java基础知识点13
trim()的作用是去掉字符串两端的多余的空格,注意,是两端的空格,且无论两端的空格有多少个都会去掉,当中间的那些空格不会被去掉,如:String s = " a s f g ";String s1 = s.trim();那么s1就是"a s f g",可见,这和上面所说的是一样的。trim()不仅可以去掉空格,还能去掉其他一些多余的符号,这些符号分别是:\t \n \v \f \r \x0085 \x00a0 ? \u2028 \u2029翻译过来分别是:水平制...原创 2021-11-24 22:36:47 · 83 阅读 · 0 评论 -
杭电oj1009java
贪心算法import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); while(sc.hasNext()){ double m=sc.nextInt(); int n=sc.nextInt(); if (m=...原创 2021-11-17 14:11:36 · 222 阅读 · 0 评论 -
杭电oj2136java解法
在解决问题之前,先介绍一下什么是素数筛选法。筛选法又称筛法,具体做法是:先把N个自然数按次序排列起来。1不是质数,也不是合数,要划去。第二个数2是质数留下来,而把2后面所有能被2整除的数都划去。2后面第一个没划去的数是3,把3留下,再把3后面所有能被3整除的数都划去。3后面第一个没划去的数是5,把5留下,再把5后面所有能被5整除的数都划去。这样一直做下去,就会把不超过N的全部合数都筛掉,留下的就是不超过N的全部质数。因为希腊人是把数写在涂腊的板上,每要划去一个数,就在上面记以小点,寻求质数的工作完毕后,这.原创 2021-11-16 22:25:35 · 93 阅读 · 0 评论 -
java知识点12
Collection接口子接口之一:List接口面试题:ArrayList,LinkedList,Vector三者异同同:三个类都是实现了List接口,存储数据特点相同:存储有序的,可重复的数据不同:ArrayList:作为List接口的主要实现类,线程不安全的,效率高,底层使用Object[] elementData存储 LinkedList:对于频繁的插入,删除操作,使用此类效率比ArrayList高,底层使用双向链表存储 Vector:作为List接口的古...原创 2021-11-16 22:23:48 · 535 阅读 · 0 评论 -
java知识点11
JDK8之前日期和时间API测试:1.Java.lang.System类,提供public static long currentTimeMillis()来返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差:long time = System.currentTimeMillis(),称为时间戳2.java.util.Date类2.1.两个构造器的使用2.2.两个方法的使用 构造器1:Date():创建一个对应当前时间的Date对象 toStrting():显示当前的年...原创 2021-11-15 22:42:47 · 75 阅读 · 0 评论 -
pat乙级 有几个pat(类似于跳楼梯问题)
PAT真题在线练习_过20题领考试代金券_牛客题霸_牛客网import java.util.*;public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.next(); char[] arr =str.toCharArray(); int p = 0;原创 2021-11-12 11:51:29 · 191 阅读 · 0 评论 -
java知识点10
类的内部成员之五:内部类1.java中允许将一个类A声明在另一个类B中,则类A就是内部类,类B称为外部类2.内部类的分类:成员内部类(静态,非静态)vs 局部内部类(方法内,代码块内,构造器内)3.成员内部类:一方面,作为外部类的成员:可以被static修饰;调用外部类的结构,可以被4种不同的权限修饰另一方面,也可以作为一个类:可以定义属性方法构造器等,可以被final,abstract修饰String:字符串,使用一对“”引起来表示1.String声明为final,不可被继承2.Stri原创 2021-11-12 11:50:01 · 209 阅读 · 0 评论 -
java知识点09
final:最终的1.final可以用来修饰的结构:类,方法,变量2.final用来修饰一个类:此类不能被其他类所继承比如:String类,System类,StringBuffer类3.final修饰方法:此方法不能被重写比如:Object类中getClass();4.final用来修饰变量,此时的变量就称为是一个常量4.1final修饰属性,可以考虑的赋值有:显式初始化,代码块中初始化,构造器中初始化4.2final修饰局部变量:尤其是使用final修饰形参时,表明此形参是一个常量,当我们原创 2021-11-08 22:31:53 · 79 阅读 · 0 评论 -
java知识点08
Object类中toString()的使用:1.当我们输出一个对象的引用时,实际上就是调用当前对象的toString()2.像String,Date,File,包装类都重写了Object类中的toString()方法,使得在调用对象的toString()时,返回“实体内容”信息3.自定义类也可以重写toString()方法,当调用此方法时,返回对象的“实体内容”包装类的使用:1.java提供了8种基本数据类型对应的包装类,使得基本数据类型的变量具有类的特征2.掌握的:基本数据类型,包装类,St原创 2021-11-06 22:10:55 · 74 阅读 · 0 评论 -
pta乙级 插入与归并
PAT真题在线练习_过20题领考试代金券_牛客题霸_牛客网import java.util.*;public class Main{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); int num = sc.nextInt(); int[] arr1 = new int[num]; int[] arr2 = new int原创 2021-11-06 22:09:27 · 72 阅读 · 0 评论 -
pta乙级 完美数列
PAT真题在线练习_过20题领考试代金券_牛客题霸_牛客网import java.util.*;public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num = sc.nextInt(); int p = sc.nextInt(); int[] arr = new int[num]原创 2021-11-06 15:18:57 · 50 阅读 · 0 评论 -
java知识点07
面向对象特征之三:多态性1.理解多态性:可以理解为一个事物的多种形态2.何为多态性:对象的多态性:父类的引用指向子类的对象(或子类的对象赋给父类的引用)3.多态的使用:虚拟方法调用(在多态情况下,此时父类的方法被称为虚拟方法)有了对象的多态性以后,我们在编译期,只能调用父类中声明的方法,但在运行期,我们实际执行的是子类重写父类的方法。总结:编译看左边,运行看右边4.多态性的使用前提:类的继承关系,方法的重写5.对象的多态性:只适用于方法,不适用于属性(编译和运行都看左边)在多态情况下,n原创 2021-11-05 22:42:17 · 78 阅读 · 0 评论 -
PAT乙级:德才论
PAT真题在线练习_过20题领考试代金券_牛客题霸_牛客网import java.util.*;public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int num = sc.nextInt(); int min = sc.nextInt(); int max = sc.nextInt();...原创 2021-11-04 22:06:36 · 59 阅读 · 0 评论 -
java知识点06
面向对象的特征之二:继承性继承性的好处:1.减少了代码的冗余,提高了代码的复用性2.便于功能的扩展3.为之后多态性的使用,提供了前提继承性的格式:class A extends B{}A:子类,派生类,subclassB:父类,超类,基类,superclass1.体现:一旦子类A继承父类B以后,子类A中就获取了父类B中声明的结构:属性,方法特别的:父类中声明为private的属性或方法,子类继承父类以后,仍然认为获取了父类中私有的结构只有因为封装性的影响,使得子类不能直接调用父类的结构原创 2021-11-04 15:40:59 · 106 阅读 · 0 评论 -
Java知识点05
面向对象特征一:封装与隐藏一.问题的引入当我们创建一个类的对象之后,我们可以通过“对象.属性”的方式,对对象的属性进行赋值。这里,赋值操作要受到属性的数据类型和存储范围的制约,但是除此之外,没有其他制约条件。但是,在实际问题中,我们往往需要给属性赋值加入额外限制条件,这个条件就不能在属性声明时体现,我们只能通过方法进行限制条件的添加。同时,我们需要避免用户再使用“对象.属性”的方式对属性进行赋值,则需要将属性声明为私有的(private)。此时,针对于属性就体现了封装性。二.封装性的体现:1.我们将原创 2021-11-03 22:43:24 · 69 阅读 · 0 评论 -
java知识点04
java类及类的成员:属性,方法,构造器,代码块,内部类面向对象三大特征:封装性,继承性,多态性,(抽象性)其他关键字:this,super,static,final,abstract,interface,package,import等面向过程:强调的是功能行为,以函数为最小单位,考虑怎么做。面向对象:强调具备了功能的对象,以类、对象为最小单位,考虑谁来做面向对象的思想:1.根据问题需要,选择问题所针对的现实世界的实体,2.从实体中寻找解决问题相关的属性和功能,这些属性和功能就形成了概念世界原创 2021-10-31 21:04:05 · 78 阅读 · 0 评论 -
java知识点03
eclipse中快捷键:1.alt+/,可自动补全代码,输入syso自动补全System.out.println,输入main自动补全psvm2.快速修复:ctrl+13.使用单行注释:ctrl+/4.使用多行注释:ctrl+shift+/5.取消多行注释:ctrl+shift+\6.选中数行,整体往后移动:tab7.选中数行,整体往前移动:shift+tab8.在当前类中,显示类结构,并支持搜索指定的方法属性等:ctrl+o9.批量修改指定的变量名,方法名,类名等:alt+shift+r原创 2021-10-29 22:17:46 · 205 阅读 · 0 评论 -
java知识点02
从键盘获取不同类型的变量:需要使用Scanner类具体实现步骤:1.导包:import java.util.Scanner;2.Scanner的实例化:Scanner sc = new Scanner(System.in)3.调用Scannerd类的相关方法,来获取指定类型的变量int型获取:int num = sc.nextInt();string型获取:String num = sc.next();对于char型的获取,Scanner没有提供相应的方法,只能获取一个字符串char a =原创 2021-10-27 22:33:38 · 141 阅读 · 0 评论 -
java知识点01
JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机本质上就是一个程序,当它在命令行上启动的时候,就开始执行保存在某字节原创 2021-10-26 22:37:08 · 63 阅读 · 0 评论