自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java复习-注解与反射

注解和反射注解comment 注释Annotation 注解不是程序本身 可以对程序作出解释 同comment可以被其他程序(比如编译器)读取@注释名 @Override @SuppressWarnings(value="unchecked")内置注解@Override 重写的注解@Deprecated 废弃的注解@SuppressWarnings(“all”) 镇压警告的注解元注解元注解的作用是负责注解其他注解@Target 表示我们的注解可以用在哪

2021-03-08 19:13:40 155

原创 Java复习-网络编程

网络编程1.1、概述计算机网络:计算机网络是指将 地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统及网络管理软件,网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。网络编程的目的:无线电台的例子 传播交流信息,数据交换 通信网络编程中的两个主要问题:如何准确定位网络上的一台主机 IP+端口 定位到这个计算机上的某个资源?找到了主机,如何传输数据?javaweb:网页编程 B/S网络编程:TCP/IP C/S1.

2021-03-07 16:32:32 131

原创 Java复习-GUI编程

GUI编程Graphical User Interface 图形用户界面组件:窗口弹窗面板文本框列表框按钮图片监听事件鼠标键盘事件破解工具…1、简介Gui的核心技术:Swing AWTwhy不常用了?界面不美观需要jre环境 大why学?写小工具工作可能需要维护到swing界面 但概率极小了解MVC架构 了解监听2、AWT2.1、AWT介绍包含了很多类和接口元素:窗口 按钮 文本框 …java.awt包2.2、组件和容器1. F

2021-03-04 18:19:31 224 1

原创 JAVA复习-java异常机制

目录what异常?异常体系结构Java异常处理机制处理异常自定义异常what异常?程序运行过程中遇到的异常问题。Exception 意外检查型异常 用户错误或问题引起的 程序员无法预见运行时异常 可能被程序员避免的异常错误ERROR 错误不是异常 而是脱离程序员控制的问题 栈溢出 由JVM生成并抛出异常体系结构ERROR:通常是灾难性的致命错误 是程序无法控制和处理的 JVM会选择强行终止Exception:通常情况下可以被程序处理Jav

2021-03-02 09:54:40 76

原创 JAVA复习-java面向对象

目录初始面向对象方法回顾和加深对象的创建分析面向对象三大特性抽象类和接口内部类及OOP实战面向对象面向过程:步骤清晰简单 第一步做什么 第二步做什么… 适合处理简单问题 具体面向对象:分类的思维模式 适合处理复杂、多人协作问题 抽象对于描述复杂的事物,为了从宏观上把握、从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是,具体到微观操作,仍然需要面向过程的思路去处理。面向对象编程(Object-Oriented Programming,OOP)本质是:以类的

2021-03-02 09:53:18 63

原创 JAVA复习-java数组

目录数组概述数组声明创建数组使用多维数组Arrays类稀疏数组数组概述数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。每一个数据称为一个数组元素,可以通过一个下标来访问。数组的声明创建声明:int[] nums;或int nums[];创建:nums = new int[arraySize];声明的时候数组并不存在只有创建了才存在一般将声明和创建写在一起:int[] nums = new int[arraySize];索引访

2021-02-27 15:56:18 116

原创 JAVA复习-java方法

目录何谓方法?方法的定义和调用方法的重载命令行传参可变参数递归何谓方法?Java方法是语句的集合,它们在一起执行一个功能。方法是解决一类问题的步骤的有序集合方法包含于类或对象中方法在程序中被创建,在其他地方被引用设计方法的原则:设计方法的时候保持方法的原子性,即一个方法只完成一个功能。方法的命名规则:驼峰原则。方法的定义和调用定义:Java的方法类似于其他语言的函数,即是一段用来完成特定功能的代码片段。方法包含一个方法头和一个方法体。修饰符 返回值类型 方法名(参数

2021-02-26 16:58:31 94

原创 JAVA复习-java流程控制

目录用户交互Scanner顺序结构选择结构循环结构用户交互Scannerpublic class Demo01 { public static void main(String[] args) { //创建一个扫描器对象 用于接收键盘数据 Scanner scanner=new Scanner(System.in); System.out.println("请输入数据:"); String

2021-02-26 16:57:09 56

原创 JAVA复习-java基础语法

注释、标识符、关键字注释:- 单行注释 //- 多行注释 /*...*/- 文档注释 标识符标识符只能以字母(大小写),$,_下划线开始首字母之后可以是字母(大小写),$,_下划线或数字的任意组合关键字不能作为变量名和方法名标识符大小写敏感可以使用中文名但不建议,也不建议使用拼音数据类型Java是强类型语言,即要求变量的使用要严格符合规定,所有变量都必须先定义后使用。Java数据类型分为两类:基本类型数值类型整数类型byte 1字节short 2字节i

2021-02-25 15:48:43 71

原创 JAVA复习-java入门

Java特性和优势简单性 c++语法纯净版面向对象 对象 接口可移植性 跨平台性 核心是JVM高性能 即时编译分布式 URL 获取网络上的资源动态性 反射机制多线程 更好的交互行为安全性健壮性 几乎不可能造成程序的崩溃 异常机制Java三大版本JavaSE标准版 开发桌面程序,控制台开发JavaME 嵌入式开发JavaEE 企业级开发 web端 服务器开发JDK JRE JVMJDK Java Development KitJRE Java Ru

2021-02-25 15:44:23 61

原创 数组、链表、哈希表、字符串LC相关题

35. 搜索插入位置class Solution { // public int searchInsert(int[] nums, int target) { // // target在数组所有元素之前 // // target等于数组中某一元素 // // target需要插入数组中的位置 // for(int i=0;i<nums.length;i++){ // if(nums[i]>=targ

2021-02-23 15:01:33 129

原创 二叉树相关LC题代码整理(41题)

深度优先遍历DFS144.二叉树的前序遍历145.二叉树的后序遍历94. 二叉树的中序遍历方法一:递归class Solution { //前序 public List<Integer> preorderTraversal(TreeNode root) { List<Integer> res=new ArrayList<Integer>(); preorder(root,res); return res

2020-12-20 17:06:41 163

原创 左神算法基础班Class-03

用数组结构实现大小固定的队列和栈//数组表示栈 先进后出 public static class ArrayStack { private Integer[] arr; private Integer index; public ArrayStack(int initSize) throws IllegalAccessException { if (initSize < 0) throw new IllegalAcc

2020-07-11 18:27:11 95

原创 《剑指offer》刷题记录(11-20)

解法一:直接找最小值感觉这题直接返回最小值就行了。。。但为了降低时间复杂度可以用二分法class Solution { public int minArray(int[] numbers) { int temp=numbers[0]; for(int i=0;i<numbers.length;i++){ if(numbers[i]<temp){ temp=numbers[i]; .

2020-07-09 09:21:49 46

原创 左神算法基础班Class-02

荷兰国旗问题给定一个数组arr,和一个数num,请把小于num的数放在数组的左边,等于num的数放在数组的中间,大于num的数放在数组的右边。要求额外空间复杂度O(1),时间复杂度O(N)package basic_algorithm.class_01;import java.util.Arrays;public class NetherlandsFlag { public static void netherlandsFlag(int[] arr, int l, int r, int

2020-07-08 20:51:35 111

原创 左神算法基础班Class-01

一、时间复杂度冒泡排序 时间复杂度O(N^2),额外空间复杂度O(1)//排序:这里都按升序 //冒泡排序:每次都是比较相邻的两个数 每一轮会将本轮最大值放到最后 public static void bubbleSort(int[] arr) { if (arr == null || arr.length < 2) return; for (int i = arr.length - 1; i > 0; i--) {

2020-07-06 20:59:50 68

原创 Java尚硅谷数据结构与算法学习记录(15)-图

图需要表示多对多的关系时会用到图这种数据结构,图中结点可以具有零个或多个相邻元素。无向图:顶点之间的连接没有方向有向图:顶点之间的连接带有方向带权图(网):边带权值图的表示方式有两种:二维数组表示(邻接矩阵);链表表示(邻接表)邻接矩阵是表示图形中顶点之间相邻关系的矩阵,对于n个顶点的图而言,矩阵是的row和col表示的是1…n个点。邻接矩阵需要为每个顶点都分配n个边的空间,其实有很多边都是不存在,会造成空间的一定损失.邻接表的实现只关心存在的边,不关心不存在的边。因此没有空间浪费,邻接表

2020-07-02 20:19:07 372

原创 Java尚硅谷数据结构与算法学习记录(14)-AVL树

平衡二叉树(AVL树)平衡二叉树也叫平衡二叉搜索树(Self-balancing binary search tree)又被称为AVL树, 可以保证查询效率较高。具有以下特点:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。平衡二叉树的常用实现方法有红黑树、AVL、替罪羊树、Treap、伸展树等。...

2020-07-02 08:37:49 247

原创 Java尚硅谷数据结构与算法学习记录(13)-二叉排序树

二叉排序树二叉排序树:BST: (Binary Sort(Search) Tree), 对于二叉排序树的任何一个非叶子节点,要求左子节点的值比当前节点的值小,右子节点的值比当前节点的值大。特别说明:如果有相同的值,可以将该节点放在左子节点或右子节点对数据进行查询和添加时:1、使用数组数组未排序, 优点:直接在数组尾添加,速度快。 缺点:查找速度慢。数组排序,优点:可以使用二分查找,查找速度快,缺点:为了保证数组有序,在添加新数据时,找到插入位置后,后面的数据需整体移动,速度慢。2、使用链式存储

2020-06-30 14:09:36 250

原创 Java尚硅谷数据结构与算法学习记录(12)-赫(哈)夫曼树

赫夫曼树给定n个权值作为n个叶子结点,构造一棵二叉树,若该树的带权路径长度(wpl)达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(Huffman Tree), 还有的书翻译为霍夫曼树。路径和路径长度:在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路中分支的数目称为路径长度。若规定根结点的层数为1,则从根结点到第L层结点的路径长度为L-1结点的权及带权路径长度:若将树中结点赋给一个有着某种含义的数值,则这个数值称为该结点的权。结点的带权路径长度为:从根结点到该结点之间

2020-06-28 19:04:15 332

原创 Java尚硅谷数据结构与算法学习记录(11)-二叉树

为什么需要树这种数据结构?数组存储方式的分析:优点:通过下标方式访问元素,速度快。对于有序数组,还可使用二分查找提高检索速度。缺点:如果要检索具体某个值,或者插入值(按一定顺序)会整体移动,效率较低链式存储方式的分析:优点:在一定程度上对数组存储方式有优化比如:插入一个数值节点,只需要将插入节点,链接到链表中即可, 删除效率也很好)。缺点:在进行检索时,效率仍然较低,比如(检索某个值,需要从头节点开始遍历)树存储方式的分析:能提高数据存储,读取的效率, 比如利用 二叉排序树(Bina

2020-06-27 15:20:09 326

原创 Java尚硅谷数据结构与算法学习记录(10)-哈希表

有一个公司,当有新的员工来报道时,要求将该员工的信息加入 (id,性别,年龄,名字,住址..),当输入该员工的id时,要求查找到该员工的 所有信息.要求: 不使用数据库,,速度越快越好=>哈希表(散列)添加时,保证按照id从低到高插入 [课后思考:如果id不是从 低到高插入,但要求各条链表仍是从低到高,怎么解决?]使用链表来实现哈希表, 该链表不带表头 [即: 链表的第一个结点就存放雇员信息] 思路分析并画出示意图代码实现[增删改查(显示所有员工,按id查询)]

2020-06-23 18:39:44 306 1

原创 Java尚硅谷数据结构与算法学习记录(9)-查找算法

顺序(线性查找)(可查有序也可查无序)顺序查找,又称为线性查找,主要用于在线性表中进行查找。顺序查找 就是:遍历序列 逐一比对 找到就返回即可代码实现:package com.algorithm.search;import java.util.ArrayList;import java.util.List;public class SeqSearch { public static void main(String[] args) { int[] arr = {1,

2020-06-23 17:30:34 170

原创 Java尚硅谷数据结构与算法学习记录(8)-排序算法

排序排序也称排序算法(Sort Algorithm),排序是将一组数据,依指定的顺序进行排列的过程。排序的分类:内部排序:指将需要处理的所有数据都加载到内部存储器中进行排序。外部排序法:数据量过大,无法全部加载到内 存中,需要借助外部存储进行排序。冒泡排序冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。因为排序的过程中,各元素

2020-06-23 09:23:42 502

原创 Java尚硅谷数据结构与算法学习记录(7)-递归问题

递归就是方法自己调用自己,每次调用时传入不同的变量.递归有助于编程者解决复杂的问题,同时 可以让代码变得简洁。递归需要遵守的重要规则:执行一个方法时,就创建一个新的受保护的独立空间(栈空间)方法的局部变量是独立的,不会相互影响, 比如n变量如果方法中使用的是引用类型变量(比如数组),就会共享该引用类型的数据.递归必须向退出递归的条件逼近,否则就是无限递归,出现StackOverflowError,死龟了:)当一个方法执行完毕,或者遇到return,就会返回,遵守谁调用,就将结果返回给谁,同时当

2020-06-21 17:04:46 293

原创 Java尚硅谷数据结构与算法学习记录(6)续-栈实现综合计算器

栈实现综合计算器(中缀表达式)思路分析:需要两个栈:数栈和符号栈 定义一个index索引来遍历表达式遍历到一个数字,则入数栈遍历到一个符号,若符号栈为空则入符号栈;若符号栈不为空:如果当前遍历到的符号优先级小于或等于符号栈中符号的优先级,则从数栈中pop出两个数,从符号栈中pop出一个符号,进行运算,然后将运算结果入数栈,将当前遍历到的符号入符号栈;如果当前遍历到的符号优先级大于符号栈中符号优先级,则将该符号直接入符号栈。表达式遍历完毕后,则按顺序从数栈和符号栈中pop出值进行运算最后数栈

2020-06-21 11:22:29 243

原创 Java尚硅谷数据结构与算法学习记录(6)-栈的两种模拟实现

数组模拟栈思路分析:定义一个数组stack模拟栈定义top指向栈顶 初始化为-1入栈(push)操作:top++;stack[top]=data;出栈(pop)操作:int value=stack[top];top–;return value;代码实现:package com.lylicoo.stack;//数组模拟栈的基本操作的实现public class ArrayStack { private int maxSize;//栈的最大容量 private int[]

2020-06-20 11:31:28 116

原创 Java尚硅谷数据结构与算法学习记录(5)-约瑟夫问题(用单向环形链表实现)

Josephu 问题Josephu 问题为:设编号为 1,2,… n 的 n 个人围坐一圈,约定编号为 k(1<=k<=n)的人从 1 开始报数,数到 m 的那个人出列,它的下一位又从 1 开始报数,数到 m 的那个人又出列,依次类推,直到所有人出列为止,由此 产生一个出队编号的序列。package com.lylicoo.linkedlist.josepfu;//创建Boy类 代表一个节点public class Boy { private int no; pri

2020-05-22 11:46:00 188

原创 Java尚硅谷数据结构与算法学习记录(4)-双链表的应用实例

与单链表基本差不多要注意:添加操作中若添加到结尾:temp.next = heroNode;heroNode.pre = temp;否则:heroNode.next = temp.next;temp.next.pre = heroNode; heroNode.pre = temp; temp.next = temp; 注意顺序,防止断链。定义HeroNode2节点:package com.lylicoo.linkedlist;public class HeroNode2 { publ

2020-05-22 09:34:26 133

原创 Java尚硅谷数据结构与算法学习记录(3)续-单链表相关面试题

单链表 面试题求单链表有效节点的个数: public static int getLength(HeroNode head){ if(head.next==null){ return 0; } int length=0; HeroNode cur=head.next; while(cu...

2020-04-29 09:07:29 181

原创 Java尚硅谷数据结构与算法学习记录(3)-单链表的应用实例(增删改查)

单向链表定义HeroNode节点:package com.lylicoo.linkedlist;//每一个HeroNode对象就代表一个节点public class HeroNode { public int no; public String name; public String nickname; public HeroNode next;//指向下一...

2020-04-27 11:35:22 219

原创 leetcode 66. 加一(easy)

题目66. 加一给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321...

2020-04-18 15:58:26 72

原创 Java尚硅谷数据结构与算法学习记录(2)-数组模拟队列、环形队列

第一版:数组模拟队列package com.lylicoo.queue;public class ArrayQueue { private int maxSize;//队列最大容量 private int front;//队列头 private int rear;//队列尾 private int [] arr;//该数组用于存放数据,模拟队列 p...

2020-04-18 15:29:52 193 1

原创 Java尚硅谷数据结构与算法学习记录(1)-二维数组转稀疏数组并存入文件

package com.lylicoo.sparsearray;import java.io.*;/*二维数组转稀疏数组的思路:1、遍历原始的二维数组chessArr1,得到有效数据的个数sum2、根据sum就可以创建稀疏数组sparseArr int[sum+1][3]3、将原始二维数组的有效数据存入稀疏数组稀疏数组转原始二维数组的思路:1、读取稀疏数组的第一行,根据第一行...

2020-04-18 10:33:52 167

原创 LeetCode 35. 搜索插入位置(easy)

题目35. 搜索插入位置给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输...

2020-04-16 16:08:15 78

原创 LeetCode 27. 移除元素(easy)

题目27. 移除元素给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums ...

2020-04-16 15:29:51 76

原创 LeetCode 26. 删除排序数组中的重复项(easy)

题目26. 删除排序数组中的重复项给定一个排序数组,你需要在 原地 删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新...

2020-04-16 14:50:16 58

原创 LeetCode 3. Longest Substring Without Repeating Characters(medium)

题目3. Longest Substring Without Repeating CharactersGiven a string, find the length of the longest substring without repeating characters.Example 1:Input: “abcabcbb”Output: 3Explanation: The answe...

2020-04-15 18:09:53 71

原创 LeetCode 2. Add Two Numbers(medium)

题目2. Add Two NumbersYou are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two...

2020-04-14 21:08:13 126 1

原创 LeetCode 1. Two Sum(easy)

题目1:Two SumGiven an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution, and you may not us...

2020-04-14 17:53:34 95

空空如也

空空如也

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

TA关注的人

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