自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 一刷代码随想录(栈与队列2)

根据 逆波兰表示法,求表达式的值。有效的运算符包括 + , - , * , /。每个运算对象可以是整数,也可以是另一个逆波兰表达式。说明:整数除法只保留整数部分。给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。

2024-07-13 14:49:29 420

原创 一刷代码随想录(栈与队列)

栈:FILO 队列:FIFO在STL中都有栈和队列:其中对于栈:栈提供push 和 pop 等等接口,所有元素必须符合先进后出规则,所以栈不提供走访功能,也不提供迭代器(iterator)。不像是set 或者map 提供迭代器iterator来遍历所有元素。所以STL中栈往往不被归类为容器,而被归类为container adapter(容器适配器)。栈的内部结构,栈的底层实现可以是vector,deque,list 都是可以的, 主要就是数组和链表的底层实现。

2024-07-12 16:42:52 613

原创 一刷代码随想录(KMP算法以及习题)

主要思路:对于子串构建一个next数组,next数组存的是子串的当前位置的最大相同前后缀长度,当子串与主串进行比对到某一位置,若该位置不匹配,则可以在next数组中找到前一位的数nextval,并跳过子串的前nextval个值再进行比较。由此可以省去很多时间。简介:即用来匹配字符串的算法,有助于降低在主串中识别寻找子串的速度。

2024-07-11 23:32:02 167

原创 一刷代码随想录(字符串)

给定一个字符串,逐个翻转字符串中的每个单词。示例 1:输入: "the sky is blue"输出: "blue is sky the"示例 2:输入: " hello world!输出: "world!hello"解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。示例 3:输入: "a good example"输出: "example good a"解释: 如果两个单词间有多余的空格,将反转后单词间的空格减少到只含一个。

2024-07-11 11:14:52 123

原创 一刷代码随想录(344.反转字符串● 541. 反转字符串II● 卡码网:54.替换数字)

编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组s的形式给出。不要给另外的数组分配额外的空间,你必须、使用 O(1) 的额外空间解决这一问题。解法:双指针法,在数组前后各设置一个指针,将两者的字符互换后,向中间遍历即可。注意:库函数的使用很方便,但要看库函数用来做什么,如果只用一句话就完成,那是不合理的,如果库函数知识作为中间实现的部分那是可以的。

2024-07-10 13:11:33 736

原创 ☆一刷代码随想录(● 454.四数相加II ● 383. 赎金信 ● 15. 三数之和 ● 18. 四数之和 )

给定四个包含整数的数组列表 A , B , C , D ,计算有多少个元组 (i, j, k, l) ,使得 A[i] + B[j] + C[k] + D[l] = 0。为了使问题简单化,所有的 A, B, C, D 具有相同的长度 N,且 0 ≤ N ≤ 500。所有整数的范围在 -2^28 到 2^28 - 1 之间,最终结果不会超过 2^31 - 1。

2024-07-09 17:14:41 895

原创 一刷代码随想录day5(● 哈希表理论基础 ● 242.有效的字母异位词 ● 349. 两个数组的交集 ● 202. 快乐数● 1. 两数之和 )

哈希表是根据关键码的值而直接进行访问的数据结构,例如数组的下标索引就是关键码的一种。数据通过哈希函数(Code)映射到关键码,将数据存进哈希表中。哈希表一般来快速判断一个元素是否出现集合里,时间复杂度为O(1)。

2024-07-08 16:26:54 970

原创 一刷代码随想录(● 24. 两两交换链表中的节点 ● 19.删除链表的倒数第N个节点 ● 面试题 02.07. 链表相交 ● 142.环形链表II )

首先建立虚拟头节点指向开始原链表的首位节点,并创建cur指针用以遍历链表,让cur=dummy开始,将每一对需要反转的节点当作整体,用临时变量保存原始首位节点的地址与下一对节点首位地址,cur遍历时,两位两位前进,cur当作每个小整体的"head"指针,具体转换步骤为,将cur指向转换后的第一个节点,再将第一个节点的指针域指向原先的第一个节点的位置,使其成为第二个节点,再将其指针域指向下一个整体首位,完成反转。给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。,返回链表开始入环的第一个节点。

2024-07-06 16:01:39 395

原创 一刷代码随想录Day3(链表理论基础 ● 203.移除链表元素 ● 707.设计链表 ● 206.反转链表 )

int val;//链表节点数据域//指向下一节点的指针Listnode(int v):val(v),next(null){}//构造函数//若定义了有参构造函数可以如下定义节点://若未定义有参构造函数,使用默认构造函数则声明与初始化必须分开。定义链表时,都使用head指针指向每个链表,再按顺序将链表节点的head指针赋值给上以节点的next指针。将需要删除的节点的前一节点的next指针指向下一个保留下来的节点即可,在Cpp中最好还要手动释放(delete)这块内存。

2024-07-05 16:06:27 761

原创 一刷随想录第二天打卡(977.有序数组的平方、209.长度最小的子数组 、59.螺旋矩阵II)

在本题中,螺旋矩阵的构成就是用数字模拟画圈,那么要考虑的问题就是循环的圈数,以及边界的处理问题,此时就要考虑循环中的不变量,即处理边界时开闭问题,每条边界应统一使用一个开闭的原则,如左闭右开等等,原理如下图(摘自代码随想录)其具体思路如下:由于数组是有序的,那么数组内绝对值最大一定在数组两侧其中一侧,设两个指针分别从头尾访问数组,将两侧数进行平方后再比较,将大数按升序放入数组,并向数组的另一侧移动大数对应的指针,重复比较直到两个指针重合。连续就代表可以一组一组的看子数组,而不用关注不连续的序列带来的问题。

2024-07-04 23:33:22 824

原创 一刷代码随想录第一天 (数组、二分查找、移除元素)

例如:左闭右闭区间在更新左右边界时,要将以及判断过的middle进行排除,因为左闭右闭区间意味着,左右边界都可以取到,则必须排除以及判断过的值。while (left <= right) { // 当left==right,区间[left, right]依然有效,所以用 <=while (left <= right) { // 当left==right,区间[left, right)无效有效,所以用 <// target 在右区间,所以[middle + 1, right)return middle;

2024-07-03 10:57:29 505 1

原创 韩顺平Java学习日志(数组)

数组的赋值机制是引用传递,赋的是地址值,基本类型赋的是具体数据,值拷贝,值与值之间相互独立。即arr = arrNew;此时原数组指向新数组,原始数组的内存空间被销毁,完成扩容\缩减。数组扩容\缩减方法:先创建一个新的数组,将添加值与原值拷贝进新数组,再将地址赋给原数组。如果需要只拷贝内容,也就是创建两个相互独立的数组时代码如下。数组的长度通过调用数组类的方法: .length 来求。数组创建后,如不赋值,有默认的值。(图片来自韩顺平老师b站课程)数组的数据类型是引用类型。

2024-04-11 21:38:07 149 1

原创 韩顺平Java学习日志(循环结构)

首先要拆解业务需求,分成不同部分或是不同步骤,逐步添加进代码,而不是从上到下直接写完整代码,在开始时先定死一些内容,再功能实现后再进行变量对常量的替换,实现代码的迁移。1、for循环的循环变量迭代与初始化可以在语句外,初始化与迭代都可以有多条语句,并使用,隔开。return 使用在方法中就是跳出方法,用在main中就是跳出程序。do while 先执行后判断,则必须会执行一次。3、执行顺序:先判断,执行代码块,迭代,判断。2、for语句的无限循环:for(;编程思想:化繁为简,先死后活。

2024-04-10 09:45:23 124 1

原创 韩顺平Java学习日志-》(分支结构)

1、switch语句中表达式的返回值必须与case的常量一致,或可以自动转换成可以相互比较的类型,例如表达式为char,常量为int,应该由表达进行转换。2、switch表达式的返回值必须是(byte、enum、String、int、short、char)。4、当switch语句进行大小判断时候,可以考虑使用/或者-转化为常量使用。3、case中的值必须是常量,不能是变量。

2024-04-09 10:10:23 69

原创 韩顺平老师Java学习日志(4)标识符、位运算

2、输入语句,当程序执行到next时,会停止并等待。1、标识符命名规则与规范,Java关键字与保留字。调用时可以到Java文档中查询。(图片来自韩顺平b站课程)(图片来自韩顺平b站课程)

2024-04-06 11:09:28 249 1

原创 韩顺平老师Java学习日志->(运算符)

5、&&为短路与,&为与,||为短路或,|为或。&&若第一个为F,则不在判断后项,||若第一个为T,则不在判断后项。那么短路符号后部的表达式不会执行,开发中通常使用短路。8、三元运算符,一般在赋值时使用,如果为真返回表达式1,如果为假返回表达式2,表达式一和二要能对初始初始变量进行赋值,或者能自动转换。6、^代表逻辑异或,即两边的boolean变量不相同时取1。1、'/'代表除法,整数相除会去掉小数部分。2、‘%’代表取余,在Java中的原理为如下。(图片来自b站韩顺平老师课程)3、++与--的特殊注意。

2024-04-06 10:42:21 301 1

原创 韩顺平老师Java学习日志(2)->变量

只能对最近的操作数转换,char 可以存放int常量,但int变量需要强转,byte和short运算时作为int类型,short、char、byte都开业接受int常量,但不能接受int变量,即便是int表达式。2、Java中数据类型分为基本数据类型和引用数据类型,Java中可以定义整数类型byte,与boolean同样占1个字节,short和char类型占两个字节,int和float占四个字节,long和doubt占八个字节,一个字节是8位(bit)。(图片来自B站韩顺平老师,仅供自用复习)

2024-03-31 23:35:45 1283

原创 JAVA学习日志(1)

1、JAVA是一门解释性语言,不同与C/C++,JAVA在编译后生成的.class文件不能直接运行,需要借助解释器运行,JVM(JAVA虚拟机)就包含了JAVA解释器,因此在不同的系统上,只要有解释器,JAVA生成的.class文件可以通用。4、学习新技术路线 先分析学习新技术的需求分清主次,接着研究传统技术能不能解决问题,差别在哪,引出新技术需要学习的点,掌握其基本原理与基本语法和应用,再写一个快速入门的案例,掌握新技术的CRUD,最后再抠技术细节与底层原理。3、Java区分大小写,语句最后要加上;

2024-03-29 20:12:19 163

空空如也

空空如也

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

TA关注的人

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