- 博客(78)
- 收藏
- 关注
原创 Java复习九:枚举类+注解
*** TODO* 枚举类的使用** 枚举类:类的对象只有有限个,确定的。* 当需要定义一组常量时,强烈建议使用枚举类* 如果枚举类的只有一个对象,可以作为单例模式的实现方式** 枚举类的定:* 方式一:jdk5.0之前,自定义枚举类* 步骤:1 声明对象的属性:private final修饰* 2 私有化类的构造器,并给对象属性赋值* 3 提供当前枚举类的多个对象:public static final* 4 其他需要。...
2022-08-31 20:38:36 437
原创 java复习八:常用类:String/Builder/Buffer
StringBuffer/Builder->String:使用toString,使用String的构造器。String->StringBuffer/Builder: 使用String的构造器。String的不可变性体现。
2022-08-31 20:36:53 225
原创 java复习七:多线程
1 线程执行同步代码块或同步方法时,程序调用Thread.sleep()方法或者Thread.yield()方法暂停当前线程。 2 线程执行同步代码块时,其他线程调用了该线程的suspend()方法将该线程挂起,该线程不会释放锁。不同的线程分别占用对方需要的同步资源不放弃,都在等待对方放弃自己需要的同步资源,就形成了线程的死锁。 4 在同步代码块或者同步方法中执行了线程对象的wait()方法之后,线程暂停,并释放锁。2 程序需要实现一些等待的任务时,如用户输入,文件读写。...
2022-08-31 20:32:34 171
原创 Java复习六:内部类+异常处理
1继承于现有的结构2提供全局常量serialVersionUID用于标识异常的序列号3提供重载的构造器//标识异常的序列号staticfinallongserialVersionUID=-7034897190745766939L;//调用父类构造器super(msg);}}异常练习publicclassEcmDef{try{System.out.println("除0");使用命令行调试。...
2022-07-30 17:25:04 259
原创 Java复习五:抽象类+模板设计方法+接口+三种工厂模式
如果实现类实现了多个接口,而多个接口中有同名同参的默认方法,如果没有重写此方法,则会报错。如果子类继承了父类和实现的接口中声明的同名同参的方法,那么在子类没有重写此方法的情况下,默认调用的是父类中的方法。有时将一个父类设计的非常抽象,以至于它没有具体的实例,这样的类叫做抽象类。当功能内部一部分实现时确定的,一部分实现是不确定的。静态方法只能通过接口调用,默认方法只能通过实现类来调用,实现类可以重写默认方法。继承是“是不是”的关系,而接口是能不能的关系。包含抽象方法的类一定是抽象类,抽象类可以没有抽象方法。.
2022-07-26 17:26:08 373
原创 Java复习四:static关键字+代码块+final关键字
单例设计模式整个系统中只存在一个对象,将构造方法的访问权限设置为private,使得外部无法创建对象,在内部创建一个静态对象,并通过一个静态方法使得外部得到这个静态对象。被static关键字修饰的属性内存中只有一份,一个对象中修改了static,其他对象中的static也会变化。类只是描述对象的属性和行为,并没有产生实际的对象,只有使用关键字New的时系统才会分配内存给对象。非静态方法中可以使用静态属性和静态方法,也可以使用非静态属性和方法。static可以用来修饰属性,方法,代码块,内部类。.......
2022-07-25 15:27:28 197
原创 IDEA2021配置Maven
IDEA配置Maven环境以及配置Maven后运行SpringBoot项目提示The Apache Tomcat Native library failed to load. The error reported was [C:\Windows\System32\tcnative-1.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform]报错处理。
2022-06-25 23:59:58 4317
原创 链表实现多项式加法 纯C实现
创链表->归并相加->去0#include<stdio.h>#include<stdlib.h>typedef struct Node{ float coef; //系数 int exp; //指数 struct PNode *next;}PNode;//创建多项式,多项式为空返回falsevoid Create(PNode* La);//打印多项式void Display(const PNode* La);//多项式加法void Add
2022-05-12 09:53:49 174
原创 二分打卡六: 1608. 特殊数组的特征值
特殊数组的特征值给你一个非负整数数组 nums 。如果存在一个数 x ,使得 nums 中恰好有 x 个元素 大于或者等于 x ,那么就称 nums 是一个 特殊数组 ,而 x 是该数组的 特征值 。注意: x 不必 是 nums 的中的元素。如果数组 nums 是一个 特殊数组 ,请返回它的特征值 x 。否则,返回 -1 。可以证明的是,如果 nums 是特殊数组,那么其特征值 x 是 唯一的 。示例 1:输入:nums = [3,5]输出:2解释:有 2 个元素(3 和 5)大于或等于.
2022-05-11 23:39:18 324
原创 高精度浮点数算法 计算1-1/2+1/3-1/4+··· ···1/999-1/1000
s=1-1/2+1/3-1/4+……+1/999-1/1000,要求精确到小数点后50位。float的有效精度是8位,double是16位,都不满足我们的要求,所以只能用数组来处理这个问题。加减每次从最低为开始操作,每次计算处理进位,除法从最高位计算,每次计算处理进位PS:这个题我写的所有代码只适用于同类型的题,比如你可以让精度到100位或者加到1/10000。因为我的除法,加法,减法都只考虑了正数的情况,显示中可能有负数的情况,同时减法考虑的是被减数必定大于减数(这是这个题里必定具有的性质)。基本没
2022-05-11 15:43:04 910
原创 二分打卡5 167. 两数之和 II - 输入有序数组 笨比二分+滑动窗口+哈希
笨比二分+滑动窗口+哈希 思路简单介绍,时间复杂度和空间复杂度对比
2022-05-10 21:51:07 93
原创 二分打卡4: 1539. 第 k 个缺失的正整数
第 k 个缺失的正整数给你一个 严格升序排列 的正整数数组 arr 和一个整数 k 。请你找到这个数组里第 k 个缺失的正整数。示例 1:输入:arr = [2,3,4,7,11], k = 5输出:9解释:缺失的正整数包括 [1,5,6,8,9,10,12,13,…] 。第 5 个缺失的正整数为 9 。思路已知的一个规律是缺省的元素的值=k+已有的元素的个数。缺的元素个数有这么一个规律,arr[i]-i-1,即当前的值减去已有的元素个数,所以我们可以判断出缺省的元素数量。那么找到离k.
2022-05-10 00:21:07 223
原创 二分打卡3 : 153. 寻找旋转排序数组中的最小值
这个旋转之后的数组,除了整体递增和递减这两种情况外,从中间分开,一定有两种情况:一边肯定是递增的,另一边一定是一部分递增到最高值,然后断开,从最小值开始递增(后续称它为折线部分)。如果递增部分最左边的那个值不是最小值的话(处理整体递增),那么最小值一定在折线部分。对折线部分不断进行二分,不断舍弃左边递增部分,如果左边不是递增,那么就舍掉右边部分(这里处理了整体递减的特殊情况),最后左右重合的点,一定是左边递增部分的后一个点,即我们找的最低点。
2022-05-08 20:37:31 85
原创 1002 A+B for Polynomials 分数 25 带解析
题目大意:两个多项式相加,有两行输入 第一个是项的数量K,后面是n个项 每个项包括两个输入,指数 系数。K的大小在1-10(可恶,我一开始当成指数范围在1-10了,只有第1个测试点没过,所以其他的测试点指数都在1-10的范围内),指数大小在0-1000。输出和输入一样的格式,系数要精确到小数点后一位,行末不能有空格。#include<bits/stdc++.h>using namespace std;int main(){ //以指数为下标 vector<doubl
2022-05-08 00:04:28 124
原创 1001 A+B Format
题目大意是两个整数相加,然后每隔三位数一个加一个逗号,如果结果不到4位数,就不用加逗号(也就是西方的数字表达方式)感觉思路不怎么难,就是各种奇奇怪怪的情况没考虑完全。。。运行一次查一次漏,感觉这样不太行#include<bits/stdc++.h>using namespace std;int main(){ int a,b; cin>>a>>b; a+=b; if(a<0) { cout<&l
2022-05-07 23:20:49 299
原创 二分查找打卡2 74. 搜索二维矩阵
编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。每行的第一个整数大于前一行的最后一个整数。输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3输出:true思路这是一个矩阵,二分一般都是一维的数组,那么怎么二分呢?那就要想办法把矩阵转化成一维数组(其实是因为前天刚做了一道矩阵重置的题了解到可以把矩阵转一维,刷题果然还是有用的),具体的方法就是a[x]=
2022-05-07 17:25:10 101
原创 二分打卡1 1385. 两个数组间的距离值
最近感觉写的都没啥好记录的,感觉博客空了好久,还是记录一下吧,看他们说要坚持一段时间学一个方面的,才能学好。那就从感觉最简单的二分开始吧。给你两个整数数组 arr1 , arr2 和一个整数 d ,请你返回两个数组之间的 距离值 。「距离值」 定义为符合此距离要求的元素数目:对于元素 arr1[i] ,不存在任何元素 arr2[j] 满足 |arr1[i]-arr2[j]| <= d 。输入:arr1 = [4,5,8], arr2 = [10,9,1,8], d = 2输出:2思路因为这
2022-05-06 21:16:51 423
原创 顺序表实现栈操作 c++
请编写程序,实现顺序栈的各种基本运算,利用菜单组织所有功能,要求实现(1)输出栈中的所有元素;(2)入栈:往栈中压入一个元素;(3)出栈:从栈中退出一个元素;(4)取栈顶:输出当前栈顶元素;(5)求栈的长度;(6)清空栈;(7)销毁栈并退出系统。#include<iostream>#include<iomanip>using namespace std;typedef int Status;typedef int ElemType;#define MAX
2022-05-04 15:31:44 866
原创 单链表实现多项式的乘法 c++
相乘->排序->合并重复指数项->去系数为0项#include<iostream>using namespace std;typedef int Status;typedef char ElemType;#define OK 1#define ERROR 0#define OVERFLOW -1struct Poly{ int coef; //系数 int exp; //指数 Poly* next; //有参构造函数,默认参数为0,0,nu
2022-05-03 08:59:02 793
原创 883. 三维形体投影面积 题意解释,代码很简单
三维形体投影面积在 n x n 的网格 grid 中,我们放置了一些与 x,y,z 三轴对齐的 1 x 1 x 1 立方体。每个值 v = grid[i][j] 表示 v 个正方体叠放在单元格 (i, j) 上。现在,我们查看这些立方体在 xy 、yz 和 zx 平面上的投影。投影 就像影子,将 三维 形体映射到一个 二维 平面上。从顶部、前面和侧面看立方体时,我们会看到“影子”。返回 所有三个投影的总面积 。示例 1:输入:[[1,2],[3,4]]输出:17解释:这里有该形体在三.
2022-04-26 21:06:53 224
原创 顺序表的应用
1、采用顺序表表示集合,编程求集合运算(A-B)∪(B-A)的结果。2,一个长度为n(n≥1)的升序排列顺序表La,处在第n/2个位置的数称为La的中位数。3、设计一个图书信息管理系统,每本图书包含ISBN号、书名、定价信息,要求实现取值、查找、插入、删除等功能,
2022-04-24 13:43:01 839
原创 顺序表的基本操作
(1)输出顺序表中的所有元素;(2)按序号查找指定元素,即输出顺序表中的第i个元素;(3)按值查找指定元素,即输出顺序表中值为x的元素的序号;(4)在指定位置插入元素,即在第i个元素前面插入值为x的元素;(5)删除指定元素,即删除第i个元素;(6)删除顺序表中所有值在[x,y]范围内的元素,要求时间复杂度达到O(n);(7)单值化操作,即删除表中重复元素中的多余元素,只保留其中序号最小的一个,例如,顺序表(2,4,4,3,2,4)单值化后的结果为(2,4,3);(8)简单划分操作,即将顺序表
2022-04-24 13:39:44 5757
原创 哲哲打游戏 简单的进阶题
感觉这个应该是L2中最简单的一个,但是它放在第四个题而且题目和输入巨长,压根就没看。。看来每次还是要先看看所有的题目思路先根据输入的剧情信息建立一个动态锯齿数组,把每个剧情对应的分支存下来,再根据做出的选择,ans作为当前所在位置,初始为1,0选择,1存档,2读档#include<iostream>#include<vector>using namespace std;//book存储存档信息,为了方便,从1开始使用int book[101] = { 0 };int
2022-04-18 10:21:42 2402
原创 L2-1 盲盒包装流水线 (25 分)
思路这个题目,徽章的类型其实就是每放满一次栈,就将栈里的徽章放给上面的格子。最开始我用一个n的数组存盒子编号,但是查找很费力,后两个点直接超时。因为数据并不算大,为了查找方便,这次直接开了个100000的数组,25分get#include<iostream>#include<stack>#include<vector>using namespace std;int main(){ int n, size, temp; cin >> n &g
2022-04-17 22:17:57 1215
原创 点赞狂魔(25分) set+sort解决
思路stl也太棒了!直接用set去重得到不同标签数目,定义结构体存储全部信息,,然后sort排序,当然sort排序的比较函数需要自己定义。#include<iostream>#include<set>#include<vector>#include<algorithm>using namespace std;struct p{ string name; int key, sum; //key记录非重标签数,sum记录总标签数 //重
2022-04-17 21:00:39 512 1
原创 56合并区间
56.合并区间以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间示例 1:输入:intervals = [[1,3],[2,6],[8,10],[15,18]]输出:[[1,6],[8,10],[15,18]]解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].这个题完全没有思路,记录一下思路:将数组排序,刚知
2022-04-12 20:41:09 97
原创 994.腐烂的橘子 bfs
腐烂的橘子在给定的 m x n 网格 grid 中,每个单元格可以有以下三个值之一:值 0 代表空单元格;值 1 代表新鲜橘子;值 2 代表腐烂的橘子。每分钟,腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。返回 直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1 。思路把初始的烂橘子当作第0天感染的,那么接下来一天它可以感染它附近四个方向的橘子,因此四个方向的橘子感染天数就是感染了它的橘子的天数+1。再对这些橘子进行同样的操作。应用队列实现。为了便于判断.
2022-04-09 20:06:32 251
原创 19删除链表的倒数第N个结点 简单的双指针,不带哑结点及带哑结点优化
给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。示例 1:输入:head = [1,2,3,4,5], n = 2输出:[1,2,3,5]这个题的思路很简单了,双指针,前后保持n的距离,但是我的版本有些瑕疵,在于对于n恰好为链表的长度,不如官方简洁(他采用了一个哑节点处理,即在头结点前插入一个结点),所以记录一下吧。class Solution {public: ListNode* removeNthFromEnd(ListNode* head, int n) {
2022-04-04 06:46:43 1011
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人