- 博客(31)
- 收藏
- 关注
原创 22.2.7-最长快乐字符串
class Solution { public String longestDiverseString(int a, int b, int c) { StringBuilder res=new StringBuilder(); Pair arr[]={new Pair(a,'a'),new Pair(b,'b'),new Pair(c,'c')}; while(true){ //对arr根据a,b,c的值排序,此时arr是按.
2022-02-07 20:10:00
246
原创 22.2.6-唯一元素的和,哈希表
class Solution { public int sumOfUnique(int[] nums) { Map<Integer, Integer> cnt = new HashMap<Integer, Integer>(); for (int num : nums) { cnt.put(num, cnt.getOrDefault(num, 0) + 1); } int ans = 0.
2022-02-06 10:07:52
439
原创 1.25-字符串转换整数(自动机)
字符串转换整数class Solution { public int myAtoi(String s) { Automaton automation=new Automaton(); int length=s.length(); for(int i=0;i<length;i++){ automation.get(s.charAt(i)); } return (int)automation
2022-01-25 17:16:59
213
转载 1.24-Z字变换、StringBuilder
一、Z字形变换思路:分行,一个列表rows,每一行(row)都有一个StringBuilder,遍历整个字符串,由currow决定当前字符是在哪一行,当当前行是在第一行或者最后一行时,反向,向上减或向下加。最后遍历每一个StringBuilder,把每一行的字符顺序加入新的StringBuilder中。class Solution { public String convert(String s, int numRows) { if(numRows==1) return s;
2022-01-25 11:07:10
166
原创 1.20-石子游戏
这里写自定义目录标题1. 每日一题——石子游戏1. 每日一题——石子游戏class Solution { public boolean stoneGameIX(int[] stones) { int cnt0 = 0, cnt1 = 0, cnt2 = 0; for (int val : stones) { int type = val % 3; if (type == 0) { +
2022-01-21 13:37:46
2607
原创 1.18-每日一题-最小时间差
根据题意,一共有 24×60=1440 种不同的时间。由鸽巢原理可知,如果timePoints的长度超过 1440,那么必然会有两个相同的时间,此时可以直接返回 0。class Solution { public int findMinDifference(List<String> timePoints) { int n = timePoints.size(); if (n > 1440) { return 0; .
2022-01-18 22:13:06
72
原创 1.17-动态规划(元音字母)+两数相加(链表)
1.LC题1.1每日一题——统计元音字母序列的数目以上定义等价于:元音‘a’前面只能跟’e’,‘u’,‘i’元音‘e’前面只能跟’a’,‘i’元音’i’前面可以跟’e’,‘o’元音’o’前面可以跟’i’元音’u’前面可以跟’o’,‘i’动态规划,设一个二维数组d[i][j]。i代表目前是第几位;j=0,1,2,3,4,分别代表这一位为a,e,i,o,u。递推公式:class Solution { public int countVowelPermutation(int n)
2022-01-17 23:19:39
94
原创 1.16学习记录-链表+random
1. Leetcode每日一题1.1 计算力扣银行的钱大致思路:等差数列,周周等差,日日等差,求有几个7以及对7求余,整周与余天相加class Solution { public int totalMoney(int n) { // 所有完整的周存的钱 int weekNumber = n / 7; int firstWeekMoney = (1 + 7) * 7 / 2; int lastWeekMoney = firstWe
2022-01-16 21:59:07
98
原创 跟郝斌老师复习数据结构part6--排序
一、排序和查找的关系排序是查找的前提排序是重点二、冒泡三、插入四、选择五、快速排序先找到某一个元素的确定位置,将两边分开,再在左右分别找某一个元素的确定位置,递归进行下去。六、归并排序七、...
2020-07-03 18:35:43
107
原创 跟郝斌老师复习数据结构part5--非线性结构--树
一、定义1 专业定义有且只有一个称为根的节点有若干各互不相交的子树,这些子树本身也是一棵树2 通俗定义树是由节点和边组成。每个节点只有一个父节点,但是可以由多个字节点。但有一个节点例外,该节点没有父节点,此节点称为根节点。3 专业术语节点父节点子节点子孙堂兄弟深度:从根节点到最底层节点的层数称为深度(根节点是第一层)叶子节点:没有子节点的节点非终端节点:非叶子节点度:子节点的个数称为度数的度:含有最大子节点的个数即最大的度就是数的度二、分类1 一般树任意一个
2020-06-30 22:26:13
150
原创 跟郝斌老师复习数据结构part4--专题--递归
一、定义一个函数自己直接或间接调用自己#include<stdio.h>void f(int);void f(int n){ if(n==1) printf("哈哈\n"); else f(n-1);}int main(void){ f(3);//哈哈 return 0;}二、
2020-06-19 19:27:27
108
原创 跟郝斌老师复习数据结构part3--线性结构的两种常见应用
一、栈1.1栈的定义一种可以实现“先进后出”的存储结构。栈类似于箱子1.2栈的分类静态栈动态栈1.3算法出栈入栈(压栈)1.4应用删除插入#include<stdio.h>#include<malloc.h>#include<stdlib.h>typedef struct Node{ int data; struct Node * pNext;}NODE, * PNODE;typedef struct Sta
2020-06-16 11:30:21
157
原创 跟郝斌老师复习数据结构part2--线性结构
线性结构:把所有的结点用一根直线穿起来一、连续存储【数组】1.1什么叫数组元素类型相同,大小相等1.2数组的优缺点#include<stdio.h>#include<malloc.h>#include<stdlib.h>//定义了一个数据类型,该数据类型的名字叫做struct Arr,该数据类型共三个成员,pBase,len,cnt struct Arr{ int * pBase;//存储的是数组第一个元素的地址 int len;//数组所能容纳的最
2020-06-11 20:56:32
167
原创 郝斌C语言其他知识点
一、枚举1.1什么是枚举把一个事物所有可能的取值一 一列举出来1.2怎样使用枚举#include<stdio.h> //枚举//只定义了一个数据类型,并没有定义变量,该数据类型的名字是enum WeekDay enum WeekDay{ MonDay,TuesDay,WednesDay,ThursDay,FriDay,SaturDay,SunDay};void f(enum WeekDay i){ switch(i){ case 0: printf("MonDa
2020-06-07 11:09:13
159
原创 跟着郝斌老师复习C语言part8--结构体
一、为什么需要结构体为了表示一些复杂的事物,而普通的基本类型无法满足实际要求二、什么叫结构体把一些基本类型数组组合在一起形成的一个新的复合数据类型,就叫做结构体三、如何定义一个结构体三种方式,推荐使用第一种四、怎样使用结构体变量4.1赋值和初始化定义的同时可以整体赋值如果定义完之后,则只能单个的赋初值#include<stdio.h>struct Student{ int age; float score; char sex;};int main(voi
2020-06-05 21:48:50
162
原创 跟着郝斌老师复习C语言part7--指针
引例int main(void) { int * p;//p是变量的名字,int * 类型表示p变量存放的是 int 类型变量的地址 int i=3; int j;// p=i// error 因为类型不一致,p只能存放 int 类型变量的地址,不能存放int 类型变量的值// p=5;//error 原因同上 p=&i;/* 1.p 保存了 i 的地址,因此 p 指向 i , 2.但是p不是i,i也不是p,更准确的说,修改p的值不影响i的值,修改i的值也不影响p的值 3.
2020-05-24 21:16:00
608
3
原创 跟郝斌老师复习C语言Part5--数组
一、数组概述为什么需要数组为了解决大量同类型数据的存储和使用问题为了模拟现实世界数组的分类:一维数组二维数组多维数组
2020-05-12 22:02:52
155
原创 跟郝斌老师复习C语言part4--如何看懂一个程序
一、素数和回文数素数:只能被自己和1整除的数回文数:正着写和倒着写都一样的数(例:11211)二、小算法程序:判断一个数字是否是素数判断一个数字是否是回文数编程实现求一个十进制数字的二进制形式求将一个数字中的奇数数字取出来形成的新数字求一个数字倒过来的数字三、如何看懂一个程序流程每个语句的功能试数如何学习一些小算法的程序尝试自己去编程解决它,大部分都自己无法解决。...
2020-03-24 20:39:22
187
原创 跟着郝斌老师复习C语言part3--流程控制
一、流程控制1、什么是流程控制程序代码执行的顺序2、流程控制的分类顺序定义:某些代码可能执行,也可能不执行,有选择的执行某些代码分类:if 、 switchif:1.if最简单的用法格式: if(表达式) 语句; 功能:如果表达式为真,执行语句;如果表达式为假,语句不执行。2.if的范围问题a. if 默认只能控制其后的一个语句。例如if只能控制A执行与...
2020-03-22 21:48:09
116
原创 跟郝斌老师复习C语言part2--输入输出用法和运算符
311、基本的输入和输出函数的用法printf()–将变量的内容输出到显示器上四种用法1.printf(“字符串\n”);2.printf(“控制输出符”,使出参数);3.pringtf(“输出控制符1,输出控制符2…”,输出参数1,输出参数2,…);输出控制符和输出参数个数必须一一对应4.printf(“输出控制符 非输出控制符”,输出参数);输出控制符:%d,%ld,%c,%...
2020-03-21 22:06:52
204
原创 跟郝斌老师复习C语言part1--C语言概述和预备知识
21考研看郝斌老师的数据结构,发现有些C语言的知识已经忘了,顺便复习一下C语言。一 、C语言概述1 、为什么学C语言1.C语言的起源和发展2.C的特点:优点:代码量小,速度快,功能强大缺点:危险性高,开发周期长,可移植性不强3.C的应用领域4.C的重要性2、举例子32个关键字:(由系统定义,不能重作其他定义)autobreakcasech...
2020-03-21 20:12:23
261
原创 this
1、表示隐式参数public Student(String name){ this.name=name;}利用this来访问实例字段。this表示隐式参数,即该类的一个实例。2、类内调用构造器如果构造器第一个语句是这样的形式:this(…)那么,这时指此构造器调用本类中另一个构造器。例如:public class Student{... public Student(S...
2019-10-23 22:09:30
82
原创 类
1、构造器2、方法3、使用多个源文件4、访问控制符5、静态字段与方法静态字段如果在一个类中,把一个字段声明为static,那么在这个类中只能由这么一个类字段,而每个实例都共享同一个字段。public class StudentTest{public static void main(String[]args){ for(i=0;i<100;i++){ Student...
2019-10-21 21:22:11
121
原创 super
1、 在继承中super关键字可用来实现对父类成员的访问,用来引用当前对象的父类class Animal { void eat() { System.out.println("animal : eat"); }} class Dog extends Animal { void eat() { System.out.println("dog : eat"); ...
2019-09-21 20:25:47
65
原创 implements 和 extends
一、继承在JAVA中类可以多重继承而不可多继承但可以用关键字implements通过实现多个接口实现变相的多继承。
2019-09-21 14:33:19
112
原创 FileInputStream 和 FileOutputStream
一、IO流的类层次图一个流被定义为一个数据序列。输入流用于从源读取数据,输出流用于向目标写数据。下图是一个描述输入流和输出流的类层次图。粘贴自菜鸟教程-JAVA-流二、FileInputStream2.1概念FileInputStream流被称为文件字节输入流,意思指对文件数据以字节的形式进行读取操作如读取图片视频等2.2创建可用字符串类型的文件名来创建一个输入流对象来读取文件:...
2019-09-10 23:42:02
326
原创 JAVA可变参数
一、可变参数的定义1.1VarargsJ2SE1.5中提供了Varargs机制,允许直接定义能和多个实参相匹配的形参。从而可以用一种更简单的方式来传递个数可变的实参。Varargs的含义:大体说来,“Varargs”是“variable number of arguments”的意思。有时候也被简单的称为“variable arguments”,不过因为这一种叫法没有说明是什么东西可变,所以...
2019-09-10 00:00:04
189
原创 正则表达式
一、正则表达式的概念1.1是一种形式语言正则表达式是一种由符号和规则组成的形式语言。形式语言是一种用简洁的、抽象的、形式化的数学公式来表达复杂语言语法的特殊语言,它只研究语言的组成规律,不涉及语义。正则表达式定义了字符串的模式;可以用来搜索、编辑或处理文本。并不仅限于某一种语言,但是在每种语言中有细微的差别。1.2形式语言,形式逻辑的相关知识Metacharacter...
2019-09-08 13:26:01
209
原创 部分JAVA基础知识区别分析
部分JAVA基础知识概念区别分析1.continue 和 breakbreak 关键字菜鸟教程中:break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。break 跳出最里层的循环,并且继续执行该循环下面的语句。代码示例:for(int i=0;i<6;i++) { System.out.println("i0:"+i); while(++i=...
2019-09-05 22:59:30
103
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人