自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 链表(删除重复的节点)

/* 题目要求: * 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点, * 重复的结点不保留,返回链表头指针。 * 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5 * */ 题解:先判空和长度是否为一 定义两个指针和一个傀儡节点 用cur当游标遍历链表, ①当cur的值和cur.next的值相等时,prev不动,cur指向他的下一个 直到cur的值不等于cue.next 退出循环 prev.next = cur.nex

2021-03-16 13:57:02 180

原创 链表(找出环的入口)

题目:找出链表中环的开始位置 题解:使用快慢指针,当快指针不为空时, ①快指针走两步,慢指针走一步 ②判断是否相遇 相遇的话,让快指针从头再和慢指针一块走,直到相遇 /*链表中环的入口 * 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。 * */ public ListNode EntryNodeOfLoop(ListNode pHead) { if(pHead == null || pHead.next == null) {

2021-03-16 13:42:32 237

原创 数据库习题

题目描述 有一个员工表employees简况如下: 有一个薪水表salaries简况如下: 请你查找所有员工自入职以来的薪水涨幅情况,给出员工编号emp_no以及其对应的薪水涨幅growth,并按照growth进行升序,以上例子输出为 (注:可能有employees表和salaries表里存在记录的员工,有对应的员工编号和涨薪记录,但是已经离职了,离职的员工salaries表的最新的to_date!=‘9999-01-01’,这样的数据不显示在查找结果里面,以上emp_no为2的就是这样的) sele

2021-03-15 08:45:51 702

原创 美团笔试题(10.1淘汰分数)

淘汰分数 题意:划定一个分数线,大于这个分数的选手晋级,其他的选手就淘汰 要求:n名选手,要求找出一个最低分数m,按分数划分成晋级和淘汰两波人,并且这两波人人数都在[x,y]区间内 思路:要求按成绩划分,肯定得先将n名选手成绩放入数组并按由低到高排序, 遍历数组将成绩放入栈中,并判断当前栈的大小是否满足[x,y] 当前数组剩余元素个数是否满足[x,y],如果都满足,直接结束循环,否则继续放如栈中。 最后判断跳出循环是因为break还是循环结束(栈中元素个数),如果是因为break,那么直接弹出栈顶元素,得到

2021-03-14 12:00:31 1887 4

原创 美团笔试题(10.2正则序列)

正则序列 题意是:第一行手动输入一个整数n,代表数组长度,第二行输入n个整数,要将这n个数调整为1~n 问:最少需要调整多少次? 思路:问次数时,可以定义一个计数器来保存答案,要调整为一个有序数组,先将其升序排序,再遍历数组,因为最终结果是从1开始连续的n个数,则可按数组索引加一为参照,依次比较数组中每个数,当数组中的数小于数组索引加一时,数组中的数值自增一直到相等,每自增一次计数器加一,当数组中的数值大于索引加一时,数值自减一直到相等,每自减一次计数器加一,最终输出计数器即可 import java.u

2021-03-13 22:03:25 907

原创 习题(翻转链表)

输入一个链表,反转链表后,输出新链表的表头。 输入:{1,2,3} 输出:{3,2,1} 思路:相当于遍历原链表,将遍历到的每个节点采用头插法插入到新链表; prev 为新链表头 cur 从头开始遍历 curNext 记录cur下一个节点 每在prev前插入一个节点,prev就向前移动成为新头 时间复杂度和空间复杂度都为O(N) /* class ListNode { int val; ListNode next = null; ListNode(int val) {

2021-03-13 11:09:04 124

原创 HTTP响应状态码

2.1,状态码告知 状态码的职责就是描述返回的结果,通过结果用户就可以指导是否请求成功。 状态码的类别 2.2 2XX 成功 2.2.1 200 ok 表示客户端发送的消息被服务器端正常处理了。 在响应报文中,响应信息随着方法的不同会发生改变,使用GET方法会返回对应的请求资源实体,而使用HEAD方法,就不会返回实体。 2.2.2 204 NOT FOUND 该状态码表示客户端请求处理成功,但是在返回的响应报文中不含实体的主体部分。 这个状态多出现在客户端向服务器发送信息,而服务器端不进行信息返回。

2021-03-12 23:40:14 202

原创 七种排序算法性能分析

排序方法 最好时间复杂度 平局时间复杂度 最坏时间复杂度 空间复杂度 稳定性 特点 插入排序 O(N) O(N^2) O(N^2) O(1) 稳定 越有序越快 希尔排序 O(N) O(N^1.3)~ O(N^1.5) O(N^2) O(1) 不稳定 分组,缩小增量 选择排序 O(N^2) O(N^2) O(N^2) O(1) 不稳定 堆排序 O(N*log(N)) O(N*log(N)) O(N*log(N)) O(1) 不稳定 冒泡排序 O(N) O(N^2) O(N^...

2021-03-11 20:42:13 144

原创 快速排序的优化

1.递归的快速排序优化 第一种优化思想: 1.首先快速排序对于大量数据比如以万为计量单位,那么快排的时间复杂度和空间复杂度都是相对于其他几个排序都是最好的,那么对于少量数据比如10个,100个,快速排序显然已经不是最好的了; 2.那么快速排序每次经过找基准,这样数据就在慢慢趋于有序,这个时候当low和high之间的数据小于一个给定的值的时候,比如100,我们就可以之间调用之间插入排序来进行排序; public static void quick(int[] arr,int low,int high){

2021-03-11 20:25:21 1766

原创 归并排序

归并排序 如下图:先分割,在合并; //归并排序 public static void mergesort(int[] arr){ mergeSortInternal(arr,0,arr.length-1); } //分割 public static void mergeSortInternal(int[] arr,int low,int high){ if(low >= high){ return;

2021-03-11 20:18:42 105

原创 交换排序 (冒泡排序和快速排序)

1.冒泡排序 原理:在无序区间,通过相邻数的比较,将最大的数冒泡到无序区间的最后,持续这个过程,直到数组整体有序。 稳定性(稳定) ​ 1.一个稳定的排序可以变成不稳定的排序; ​ 2.一个本身就不稳定的是不可能变成稳定的; 空间复杂度:O(1) 时间复杂度:最好情况O(n);最坏情况O(n^2) //冒泡排序 public static void bubbleSort(int[] arr){ for (int i = 0;i < arr.length-1;i++){//控制冒

2021-03-11 20:16:42 109

原创 选择排序 (选择排序和堆排序)

1.选择排序 原理:每一次从无序区间选出最大(或最小)的一个元素,存放在无序区间的最后(或最前),直到全部待排序的数据元素排完 。 稳定性(不稳定) ​ 1.一个稳定的排序可以变成不稳定的排序; ​ 2.一个本身就不稳定的是不可能变成稳定的; 空间复杂度:O(1) 时间复杂度:O(O(n^2)) public static void selectsort(int[] arr){ for (int i =0;i < arr.length;i++){ for (in

2021-03-11 20:12:14 198

原创 插入排序(直接插入排序和希尔排序)

一.基本概念 1.概念: 排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。平时的上下文中,如果提到排序,通常指的是排升序(非降序) 2.稳定性 两个相等的数据,如果经过排序后,排序算法能保证其相对位置不发生变化,则我们称该算法是具备稳定性的排序算 法。 下面用一个简单图给大家说明一下:图中给的数据有俩个3,如果排序之后,黑3还在红3之后,那么这样的排序就是稳定的,否则就是不稳定的。 3.Java常见排序 二.具体排序代码实现 1.直接插入排序 稳定性(稳定):稳定性排

2021-03-11 20:04:17 321

原创 排序(二) 希尔排序

希尔排序:分组,缩小增量 /* * 希尔排序 * 不稳定排序 * 时间复杂度:O(n^1.3)~O(n^1.5) * 空间复杂度:O(1) * 特点:分组,减小增量 * */ private static void shell(int[] array, int gap) { for (int i = gap; i < array.length; i++) { int temp = array[i]; int j =

2021-03-11 19:46:54 117

原创 排序 (1)直接插入排序

直接插入排序: ```java public static void insertSort(int[] array) { for (int i = 1; i < array.length; i++) { int temp = array[i]; int j = i - 1; for (; j >= 0; j--) { if (array[j] > temp) {

2021-03-11 19:42:19 150

原创 返回输入字符串中最长连续数字串

输入一行字符,输入如:as1561d1231d5645613sd564513213213 输出 结果为 :564513213213 public static void main(String[] args) { // 输出字符串中最长连续数字串 Scanner sc = new Scanner(System.in); while (sc.hasNextLine()) { String str = sc.nextLine();

2021-03-02 21:35:26 362

原创 变强日记第十一篇MySQL数据库(一)

数据库是用来存储数据的,存储介质一般为磁盘和内存。 一、存储数据用文件夹的几个缺点,也就是数据库的优点: 1.安全性问题 2.不利于查找和管理 3.不利于存储海量数据 4.文件在程序中不方便 二、数据库的分类 数据库分为关系型数据库(RDBMS)和非关系型数据库 **关系型数据库:**采用了关系模型来组织数据的数据库,如: 1.Oracle数据库适用于做大型项目,做复杂一点的数据处理,如 ERP,OA等企业信息系统,收费等。 2.MySQL数据库适用于简单项目,特点:开源免费 3.SQL Serve.

2021-02-27 18:59:32 135

原创 变强日记第十篇 String类的使用

String类1.字符串的创建1.1常见的构造方法创建字符串2.字符串比较相等2.1 通过(==)比较2.1 通过(equals)比较3.字符、字节与字符串3.1 字符与字符串3.1.1构造方法3.1.2方法3.2 字节与字符串3.2.1构造方法3.2.2 方法3.3 小节4.字符串常用操作4.1 比较字符串4.2 查找字符串4.3 字符串替换4.4 字符串拆分4.5 截取字符串4.6 字符串其他方法5. StringBuffer 和 StringBuilder 1.字符串的创建 1.1常见的构造方法创建字

2020-10-31 15:14:23 735

原创 变强日记第九篇 异常处理

异常处理1、什么是异常1.1认识异常1.2防御式编程1.3异常的好处2、Java中异常的体系2.1Throwable2.2Exception类2.2.1 RuntimeException (运行时异常)2.2.2 IOException (输入输出异常)2.2.3 ClassNotFoundException (未找到类异常)2.2.4 CloneNotSupportedException (不支持克隆异常)3、异常的基本用法3.1 捕获异常3.2 异常处理流程3.3 抛出异常3.4 异常说明3.5 关于f

2020-10-29 16:57:57 142

原创 小项目 图书管理系统

第一个小项目 图书管理系统1.需求2.再确定对象3.然后实现功能 1.需求 1.简单登录 2、管理端 2.1整理书籍(该功能为可扩展功能) 2.2查阅书籍 2.3增加书籍 2.4删除书籍 2.5打印书籍列表 2.6退出 3、用户端 3.1查询书籍 3.2借阅书籍 3.3归还书籍 3.4退出 2.再确定对象 1.书 1.1书本 1.2书架 2.增删改查功能 3.用户 3.1管理员 3.2普通用户 3.然后实现功能 package book; public class Book { private

2020-10-28 18:06:46 190

原创 变强日记第八篇 顺序表

// 顺序表 public class TestDemo { private int[] array;//数组 private int useSize;//有效值 public int getUseSize() { return useSize; } public void setUseSize(int useSize) { this.useSize = useSize; } public int[] getArra

2020-10-20 21:00:26 96

原创 变强日记第七篇 类和对象

类和对象1.认识类和对象1.1OOP三大特征1.1.1封装1.1.2继承1.1.3多态1.2类的实例化(也就是对象)1.2.1实例化语法1.2.2代码块1.2.2.1什么是代码块1.2.2.1构造代码块1.2.2.2静态代码块 1.认识类和对象 1.1OOP三大特征 oop: 就是面向对象,我们都知道,Java是面向对象语言,面向对象关注的是对象,将一件事拆分成不同的对象,靠对象来完成交互,通过一个个逻辑将对象连接起来从而达到某种目的。 举个栗子: 就好比洗衣服来说,面向过程就是:找盆->加水 -&g

2020-10-18 20:18:07 398 1

原创 变强日记第六篇 数组

数组1.什么是数组1.1数组的定义1.2数组的输出2.数组的使用3.来上点才艺吧,做两个题试试学会了没! 1.什么是数组 可以把数组理解成是一个容器 举个栗子: 衣柜可以放衣服,橱柜可以放盘子,容器装的东西要符合一定的规则,就像衣柜里放盘子,橱柜里放衣服就很不符合逻辑,数组也是一样。 1.1数组的定义 整型: 静态初始化: int[] 数组名称 = {元素1,元素2,元素3…元素n}; 动态初始化 int[] 数组名称 = new int[数组大小]; int[] 数组名称 = new int[] {元素

2020-10-16 17:24:34 229 1

原创 变强日记第五篇 方法的使用

方法的使用1.方法的基本用法1.1初识方法1.2方法定义语法1.3 方法标签2.方法重载2.1 什么是方法重载3.方法递归3.1 什么是方法递归3.2 举个栗子,用方法递归求N的阶乘 1.方法的基本用法 1.1初识方法 简单来说,方法就类似于数学中解决问题的公式 是能够模块化的组织代码(当代码规模比较复杂的时候). 做到代码被重复使用, 一份代码可以在多个位置使用. 让代码更好理解更简单. 直接调用现有方法开发, 不必重复造轮 1.2方法定义语法 修饰符 + 返回值类型+ 方法名(参数列表){ //方法

2020-10-15 20:09:59 126

原创 变强日记第四篇 进制转换

进制转换进制转换1.十进制—>二进制2.十进制—>八进制3.十进制—>十六进制 进制转换 如何将十进制整形数据转换为二进制、八进制、和十六进制 1.十进制—>二进制 用十进制数除以2,将余数逆序排列 例如: 十进制10的二进制表示为0000 1010 同理可以得出十进制25的二进制表示为0001 1001 2.十进制—>八进制 第一种方法和转二进制一样,不过这种方式容易出错,所以我们还是先将十进制数转换为为二进制数,然后将二进制数转换为八进制数 例如: 十进制25 的 二进制表

2020-10-11 10:55:57 394

原创 变强日记第三篇 运算符

运算符1.算术运算符1.1 int / int (结果还是int)1.2 取余 %,对int 和 double 型数据都适用1.3增量赋值运算符(+= 、-=、*=、/=、%=)1.4自增、自减运算符 (++i,i++,--i,i--)2.关系运算符3.逻辑运算符(敲黑板!!)4.位运算符5.条件运算符6.运算符优先级 1.算术运算符 这个很简单,就是算术上的四则运算+、-、*、/、%,但是值得注意的是除法(/)和 取余(%) 1.1 int / int (结果还是int) int a = 1; int

2020-10-11 10:27:44 343 2

原创 变强日记第一篇 初识Java

1.初识Java1.Java语言的特性2.Java开发环境的安装 1.Java语言的特性 1.1简单性 Java语法是C++语法的一个“纯净版本”。这里没有头文件、指针运算(甚至指针语法)、结构、联合、操作符 重载、虚基类等等。不仅如此,Java开发环境远远超出大多数其他编程语言的开发环境。 1.2面向对象性 Java的面向对象特性与C++旗鼓相当,与C++的主要不同点在于多重继承。在Java中,取而代之的是更简单的接口概念。而且与C++相比,Java提供了更丰富的运行时自省功能。 1.3 分布式

2020-10-11 10:14:33 234

原创 变强日记第二篇 变量与数据类型

数据类型与运算符 1.变量 变量是程序在运行过程中可以改变的量 类型有8中基本数据类型和引用类型 所有的变量在使用前都要进行初始化,否则编译会报错!!!! 1.1 八种基本类型 boolean型数据没有具体的大小,在一个字节和一个bit之间选择bit 1.1.1字节型变量 语法格式 byte 变量名 = 初始值; 代码示例: byte num = 20; System.out.println(num); 1.1.2短整型变量 语法格式 short 变量名 = 初始值; 代码示例: short num

2020-10-11 08:33:32 169

空空如也

空空如也

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

TA关注的人

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