自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 每日一题---买卖股票的最好时机(一)、(二)

因为本题只能买入和卖出一次,所以我们首先可以先定义两个变量max(用来记录利润最大值),min(用来记录当天之前的最低价格)并将第一天的价格赋值给min,然后遍历数组,每进行一次for循环,比较max和当天价格减去min的最大值,将较大的赋值给max,接下来比较min与当天价格的最小值,并赋值给min。这种策略有时能够显著提高算法的效率,因为它减少了计算的复杂度,但同时也意味着贪心算法只能应用于那些通过局部最优解可以确保全局最优解的问题‌。总而言之,如果价格上升,res加上差值,否则直接跳过。

2025-04-02 23:22:44 361

原创 每日一题---牛客---最长回文子串

3、在for循环内部定义两个变量left和right,定义left=i-1,right=i+1,用以向两边扩展,再定义一个while循环,在left和right不超限的情况下,如果对应值相等,left--,right++。4、再定义一个while循环,定义left=i,right=i+1,重复上述步骤3(假设回文子串长度为偶数)其实很简单,就是从一个字符串的中间向两边扩展,这就是解决这道题的中心扩展算法。2、设置一个for循环从0开始,将i的值当成回文子串的中心。关于这道题,我们可以使用中心扩展算法。

2025-03-29 14:38:31 346

原创 每日一题---游游的水果大礼包

目录一、题目链接:游游的水果大礼包二、解题思路 三、代码实现 本题采用枚举的思路,因为题目要求大礼包的最大价值,所以我们可以将每种可能的结果一一枚举出来 ,其基本思路如下图:不过有一点需要注意,那就是最终结果的范围问题,不能取int,要取long,否则用例不能全部通过 。这就是本篇文章的全部内容,感谢大家的支持,我们一同加油!!!

2025-03-29 14:04:45 230

原创 每日一题---牛客---数组中的最长连续子序列

根据题目,我们可以知道所谓的最长连续序列,它并不要求位置连续,只要值连续即可,由此,我们可以先将整个无序数组排序,以方便我们接下来的操作。然后我们将每次里面循环结束的计数器的值与我们用来记录最大值的变量比较,若大于,则更新变量的值,最后返回变量的值即可。(1)后一位的数-前一位的数=1---->计数器加1,用来遍历的变量加1。(3)其他情况---->跳出里面的循环。

2025-03-26 15:16:06 292

原创 每日一题---牛客---两个数组的交集

由示例1和示例2可知,对于nums1和nums2中的公共元素,若有多个相同元素,只返回一次,所以此类问题我们可以考虑用哈希表来解决。此时有两种方式:(1)使用HashMap(2)用一个boolean类型的数组来模拟哈希表。本文采取的方式为用一个boolean类型的数组来模拟哈希表。首先定义一个boolean类型的数组,大小我们取1010。然后将第一个数组中的元素放入我们模拟的哈希表中,再用for循环来看数组一是否包含数组二中的各个元素即可。

2025-03-26 15:15:40 316

原创 Java数据结构---堆

第一次交换: 交换22与42第二次交换:交换33与55。

2025-03-16 13:43:41 694

原创 Java数据结构---队列

双端队列(deque)是指允许两端都可以进行入队和出队操作的队列,deque 是 “double ended queue” 的简称。注意:Queue是个接口,在实例化时必须实例化LinkedList的对象,因为LinkedList实现了Queue接口。队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表。队列与之前的栈不同,它的特点是先入先出。其实队列就像是我们日常生活中的排队买东西,排到前面的先离开,排到后面的后离开。在Java中,Queue是个接口,底层是通过链表实现的。

2025-02-28 22:26:34 346

原创 Java数据结构---二叉树

一、树1、树的定义。

2025-02-28 22:25:30 991

原创 Java数据结构---栈

栈是一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。其特点是数据元素先进后出(先入栈的元素后出栈)。

2025-02-21 22:54:10 429

原创 Java数据结构---链表

一、链表的概念和结构1、概念链表是一种物理存储结构上非连续存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序实现的。2、结构链表分为多个节点,每个节点可以由下图表示:其中,value为这个节点所存储的数据的值,next为下一个节点的地址。以5个节点的链表为例,它们的数据值分别为12,23,34,45,56:其中,第五个节点由于没有后继节点,所以next域存储的是空指针null。二、链表的分类链表的结构多种多样,按以下情况分类:1. 单向或者双向2. 带头或者不带头。

2025-02-17 17:15:21 504

原创 Java数据结构---顺序表

一、线性表线性表(linear list)是n个具有相同特性的数据元素的有限序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表:顺序表、链表、栈、队列...线性表在逻辑上是线性结构,也就说是连续的一条直线。但是在物理结构上并不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。二、顺序表2.1、顺序表的定义顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。

2024-10-21 11:19:17 965

原创 Java泛型

泛型是在JDK1.5引入的新的语法,通俗讲,泛型就是适用于许多许多类型。从代码上讲,泛型就是对类型实现了参数化。

2024-09-16 11:25:28 349

原创 IDEA中注释与取消注释

选中你想要注释的代码块,然后Ctrl+Shift+/进行注释,再次Ctrl+Shift+/取消注释。选中你想要注释的代码行,然后Ctrl+/进行注释,再次Ctrl+/取消注释。

2024-09-06 12:07:26 1439

原创 C语言指针详解(3)

首先,我们再深入理解一下二维数组就可以知道:二维数组可以看成是每个元素是一维数组的数组,那么二维数组的首元素就是第一行,是一个一维数组。所以,根据数组名是数组⾸元素的地址这个规则,二维数组的数组名表示的就是第一行的地址,是一维数组的地址。由此,我们可以看出,函数确实是存在地址的,并且函数名就是函数的地址,也可以使用&函数名来获取函数的地址。这就是函数指针数组的定义。它存放的是数组的地址,是一种能够指向数组的指针变量。把函数的地址存到⼀个数组中,那这个数组就叫函数指针数组,那么函数指针数组该如何定义呢?

2024-09-06 11:45:18 908

原创 C语言指针详解(2)

通过标题一的学习,我们知道了数组名的本质是数组首元素的地址,而数组传参本质上也是传递的数组首元素的地址 ,既然数组传参本质上是传递的数组首元素的地址,而既然是地址,那么就可以用指针变量来接收。既然arr可以赋值给pa,那么arr和pa应该是等价的,我们可以用arr[i]访问数组中的元素,那么我们是否也可以用pa[i]访问数组中的元素呢。在上述代码中,我们用&arr[0]的方式取得了数组的首元素的地址,但其实数组名本身就是数组的首元素的地址。这⾥的数组名表示整个数组,取出的是整个数组的地址。

2024-08-27 17:49:29 986 1

原创 C语言指针详解(1)

一、什么是指针1.1、定义指针在C语言中也叫内存地址。那么什么是内存地址呢?以生活中的房间号为例,正因为生活中的这些房间号,我们才能快速找到要找的房间。而内存地址就相当于这些房间号,有了这些内存地址,CPU就能快速找到一个内存空间。

2024-08-26 10:06:31 1038

原创 Java中的接口

在现实生活中,存在很多的接口:笔记本上的USB口,电源插座等。而在Java中,接口可以看成多个类的共同规范,是一种引用数据类型。

2024-08-24 22:18:26 470

原创 java中的抽象类

一、抽象类的概念在Java中,包含抽象方法的类就叫做抽象类。那么什么是抽象方法呢?我们把没有方法主体的方法叫做抽象方法。

2024-08-09 22:41:38 552

原创 java中的多态

多态是指同一个行为具有不同表现形式或形态的能力。例如:猫和狗都会吃饭,但猫是吃猫粮,狗是吃狗粮,这就是同一个行为,但具有不同的表现形式。

2024-07-30 18:44:33 558

原创 java中的继承

1、继承的概念继承是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加新功能,这样产生新的类,称派生类。继承主要可以用来实现共性的抽取和代码的复用。

2024-07-26 15:50:45 973 1

原创 java中的类和对象

一、类 类是用来对一个对象进行描述的,主要用来描述该对象具有哪些属性和功能。1.1、类的定义注意:类名每个英文单词首字母最好大写注意事项:1. 一般一个文件当中只定义一个类2. main方法所在的类一般要使用public修饰3. public修饰的类必须要和文件名相同4. 不要轻易去修改public修饰的类的名称,如果要修改,通过开发工具修改。(1、找到src下的Dog类,右键点击。2、找到重构并点击。3、找到第一个重命名,修改名称)1.2、类的实例化。

2024-07-19 20:11:32 1211 1

原创 java数组详解

一、数组的基本概念1、数组的定义数组可以看成是相同类型元素的一个集合,在内存中是一段连续的空间。这就类似于商场里的储物柜。2、一维数组2.1、一维数组的创建及初始化2.1.1、一维数组的创建1.array代表数组名,可任取。2. N代表一维数组中所存储元素的个数2.1.2、一维数组的初始化数组的初始化主要分为动态初始化以及静态初始化。动态初始化是指在创建数组时直接指定数组元素个数。静态初始化是指在创建数组时不直接指定数组元素个数,而是直接罗列具体的元素内容。

2024-07-14 22:40:13 2113 1

原创 Java中的输入问题

在Java中,我们要输入各类数据类型,可以使用Scanner相关知识来实现。

2024-07-13 22:22:23 357

原创 Java中的运算符详解

计算机的最基本的用途之一就是执行数学运算。作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。Java中运算符可分为以下:算术运算符(+ - * / %)、关系运算符(< > ==)、逻辑运算符、位运算符、移位运算符以及条件运算符等。一、算术运算符算术运算符分三类:基本四则运算符、增量运算符、自增/自减运算符。1、基本四则运算符(+ - * / %)注意:1. int / int 结果还是int类型,而且会向下取整2.做除法和取模时,右操作数不能为0。

2024-07-11 23:00:47 2273

原创 Java中的数据类型和变量

Java是一种优秀的程序设计语言,它具有令人赏心悦目的语法和易于理解的语义。不仅如此,Java还是一个有一系列计算机软件和规范形成的技术体系,这个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于嵌入式系统、移动终端、企业服务器、大型机等各种场合。因此,Java是众多语言中的值得学习的一个不错的选择。而想要掌握Java,熟知它的数据类型和变量就变得必不可缺。

2024-07-09 13:17:53 2089

原创 用C语言实现扫雷游戏

一、游戏介绍相信大家应该都玩过扫雷游戏吧,没玩过也没有关系,我先来给大家介绍一下扫雷游戏的玩法:1、胜利条件:这个游戏的目标就是在给定大小的棋盘上找出所有没有地雷的格子(期间不能踩雷,踩雷则输)后胜利。2、游戏细节:1.每点击一个格子,周围都会出现一些数字,这些数字代表周围8个格子中地雷的数量。2.棋盘上的一些格子中有地雷,翻开后会有图标,而其他格子被翻开后是空白的。图中所给的是9*9的棋盘,而我们现在要实现的也是这样一个9*9棋盘的扫雷游戏。

2024-07-08 12:15:38 951

原创 用C语言实现三子棋游戏

一、三子棋介绍三子棋是一种民间传统游戏,又叫九宫棋、圈圈叉叉、一条龙等。将正方形对角线连起来,相对两边依次摆上三个双方棋子,只要将自己的三个棋子走成一条线,对方就算输了,但是三子棋很多时候会出现和棋的情况。

2024-07-06 15:40:07 722

原创 C语言数组

一、数组的概念数组是⼀组相同类型元素的集合。从这一点我们可以看出,数组元素个数为1个或多个,并且这些元素的数据类型都相同。二、一维数组的创建和初始化1、一维数组的创建一维数组的创建形式如下:其中,type为数组中存放数据的类型 ,例如int ,float ,double ,char等。arr_name为数组的名字,可以任取有意义的名字。[ ]里的常量指定了数组的大小,也就是数组元素的多少。例如,我们想要存储班上40个人每个人的英语成绩,可以创建以下数组:2、初始化。

2024-07-06 08:00:00 428

原创 赋值操作符

在c语言中,我们常用“=”进行赋值操作。值得注意的是,

2024-06-02 18:42:55 416

原创 c语言中的算术操作符

二、“*” 操作符在c语言中,为了方便计算,提供了一系列操作符,其中就有算术操作符,算术运算符包括“+”、“-”、“*”、“/”、“%”这五种操作符。(注意:操作符又被叫做运算符,相当于一个人的不同称呼,意思都相同),这些操作符都是双目操作符。一、"+","-"操作符就像数学中的“+”和“-”,c语言中的“+”、“-”用来完成加法和减法。“+”、“-”都有两个(位于操作符两端的就是它们的操作数),这种操作符也叫。运行代码如下:二、“*” 操作符“*”操作符用来完成乘法。三、“/”操作符。

2024-06-01 22:30:11 347 1

空空如也

空空如也

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

TA关注的人

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