- 博客(30)
- 收藏
- 关注
原创 [Day 17]区间和
这道题主要是要确定好区间的范围,然后使用前缀和来减少查询的次数,使得每个和记录到新数组里,直接进行加法。这道题我的理解是这样的,也通过了,希望大家天天开心~
2025-02-08 14:41:15
433
原创 [Day 16]螺旋遍历二维数组
本道题要明确四个循环过程,进行四轮遍历就可以将二维数组都遍历上,也要注意取等号i>=right是要取到right这个边界的。总体来说,螺旋矩阵就是四个循环把握好,就简单了。希望我的理解对大家有帮助~
2025-02-07 13:04:13
433
原创 [Day 15]54.螺旋矩阵(简单易懂 有画图)
这道题目和昨天的题目是差不多的,要注意边界,并且更新边界,进行循环遍历每行每列数组,不明白边界的可以看看我之前的二分查找还有上一个螺旋矩阵题目呀~希望对你有所帮助!
2025-01-23 22:17:39
565
原创 [Day 14]螺旋矩阵
这道题主要是**画图**理解这个循环遍历和条件的**左闭右开**范围,在while的大循环条件下,使用四个for循环遍历,并将它们进行计数,要考虑好j等于starty时,终止条件,i表示行,是不变的,列一直在变等等。好啦,看到这里,希望我的理解对你有所帮助~
2025-01-21 22:28:41
585
原创 Linux学习day2
经过上次我们完成了linux云服务器的安装,今天我们学习一些linux基本指令,是我们使用linux系统的基础思考:输入指令,让操作系统执行,其实是在做什么呢?Linux环境中,做类似于windows的操作。linux中创建文件,删除文件等与在windows系统中是一样的,只不过这个没有图标。我们先要知道这个指令是看在。是看我用的云服务器不是管理员是普通用户,所以/home/wjn管理员账户就把以下/home/wjn换成/root就好了。
2025-01-14 19:47:50
791
原创 [Day 13]76.最小覆盖字串
本道题还是使用滑动窗口的思想来解题,要定义好left,right控制滑动窗口,左边减减,右边加加,这里结合了哈希表会方便很多,字母对应的次数来同时加加,以记录次数和字母。之后遍历s字符串求出最小长度。希望我的解答对你有所帮助呀~
2025-01-13 21:32:03
735
原创 Linux学习day1
那么我们linux是一种操作系统,有人会问了,操作系统是什么?操作系统包括我们熟知的windows、linux手机端(安卓IOS)、unix等操作系统是一款进行软硬件资源管理的软件。为什么要有操作系统?操作系统对象通过管理好软硬件资源(手段),达到给用户提供良好的运行环境(目的)。
2025-01-05 15:13:05
733
原创 [Day 12]904.水果成篮
这个题目我们使用双指针法-滑动窗口来解决,我当时读题都没读的太明白,看了看别人的解释才懂,要确定好哪个指针是终止位置,然后把right扩大,left缩小进行遍历,这道题使用了哈希表,哈希表定义数组直接提高了效率,它的size,erase的配合使用也提升了我们的效率。希望我的理解能对你有帮助~
2025-01-04 15:04:20
899
原创 [Day 11]209.长度最小的子数组
/定义总和为0//定义最小子数组为0//定义一个数为存储数组最小子长度int i=0;//定义初始位置ij++){//定义终止位置//定义和为前j个数相加//求出长度差,+1是因为从0开始//如果最小长度差<最小子长度就把长度差赋值成最小的//用和减去第一个数,前移i,更新了区间数组,这步是滑动窗口的关键(不断变更)i++;//前移i0:result;
2025-01-02 21:16:02
1007
原创 [Day 9]-比较含退格的字符串
/将计数器初始化为0如果整个循环都没有返回false,那么两个字符串经过退格处理后是相等的。返回true。public://定义i在s字符串中长度//定义计数器while (i >= 0 || j >= 0) {//字符串没比较完的条件while (i >= 0) {//当i<0不存在skips++;//给计数器+1i--;//指针往前移动一位skips--;//如果这个数不是‘#’,计数器--i--;} else {//既不等于#,skip也不大于0,没有要删除的。
2024-12-28 16:23:04
1038
原创 [Day 8]-移动零
首先,如图所示,我们初始化fast=0遍历数组,一层for循环遍历数组中是否有不等于0的元素,初始化slow为0,如果fast在数组中找到不为0的元素,就把他赋值给slow。最后不用返回数组,因为这里是引用返回,如果返回数组,后面调用的时候麻烦点。本道题使用双指针法(快慢指针法)前面篇章已经讲过,建议大家画个图尝试理解一下,会更清晰,这道题的思路是先初始化快慢指针fast、slow=0,指针fast用来遍历数组,slow用来记录两个元素交换后末尾变成0。移动到数组的末尾,同时保持非零元素的相对顺序。
2024-12-26 20:07:58
487
原创 [Day 7]-删除有序数组中的重复项
根据题目我们可以知道,是一个有序有重复元素的数组,我们要把重复的给删掉,并且顺序要一致,返回的是新数组的唯一元素的个数。总结:像移除数组中某个元素双指针法是很合适的,所以要知道什么时候更新fast、slow,我一开始看解析也不是很懂,最好画图理解一下fast和slow怎末走的,再按照思路自己尝试写一下代码,就会很清晰了。2、使用fast、slow两个指针来实现两个for遍历的事情,初始化slow=0,f用来标记数组去重后的末尾下标,fast=1,fast从1开始遍历整个数组查找重复项。
2024-12-24 13:04:11
895
原创 [Day 6]-移除元素类型
第一个for循环数组下标,如果移除的元素val==nums[i],第二个for循环j来遍历从i+1以后的每个元素进行往前移,让[j-1]=[j]覆盖。=val时,slow++,当fast走到空的时候,慢指针指向的下标就是移除元素后的数组大小。你的函数应该返回 k = 5,并且 nums 中的前五个元素为 0,0,1,3,4。将一个数组用两个for循环遍历,第一个for循环用来遍历整个数组,找到要移除的元素之后,将此后的数组用另一个for循环遍历来存储删除的元素。如果所有的断言都通过,你的解决方案将会。
2024-12-23 13:50:36
1020
原创 [Day 4] 计算X的平方根
第二种是我们今天要讲的重点,二分法。先初始化一个left和right,数组起始位置为left,数组长度为right,然后看输入的x。1.输入的x小于mid^2,(假设中间的数mid^2=4,输入的x=10。它小于10)那么要找的x比mid^2大,所以肯定在mid右边,则更新左边mid+1=left。2.输入的mid^2大于x,更新右边界,right=mid-1。本题使用二分法的思想解决题目是比较轻松的,也很好理解,要注意值的类型为longlong是为了防止溢出,将输入的值与平方作比较来得出新的缩小区间。
2024-12-21 21:54:00
501
原创 [Day 3]34. 在排序数组中查找元素的第一个和最后一个位置
情况2:target在数组里存在,例如数组{6,7,7,9}target=7,此时情况应该返回【1,2】例如{6,7,9}target=7,返回【1,1】。情况1:targrt在数组范围的左边或者右边,例如数组{6,7,8,9}target=5或target=10,此时情况都应该返回【-1,-1】。情况3:target在数组范围中,数组不存在这个数如:{6,7,7,9}target=8,此时返回【-1,-1】如果数组中不存在目标值 target,返回 [-1, -1]。
2024-12-11 21:03:36
338
原创 [Day 2]二分查找例题-搜索插入位置
力扣35-搜索插入位置。给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。本道题是解法可以用暴力求解或者二分法,主要分为下面四种情况:1.搜索的target在数组中,则返回下标。2.target比有序数组中一个数小,那么替换这个位置。3.target比有序数组任意数都大,那么就要插入新一个位置。4.搜索taget给的0,那么就要插入到第一个位置。
2024-12-09 23:11:59
437
原创 [Day1]704-二分查找
我们今天来写一下二分法,对应力扣题目704题题目描述:给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。target= 949 出现在 nums中并且下标为 4-12 不存在 nums中因此返回 -1你可以假设nums中的所有元素是不重复的。n将在[1, 10000]之间。nums的每个元素都将在之间。
2024-12-07 18:46:24
615
原创 【数据结构】-单链表
一个节点有两个部分组成,要存储的数据+指针(结构体指针)对一级指针取地址,必须用二级指针来接受一级指针的地址。申请空间:#include<stdlib.h>单链表中提到的“头节点”是第一个有效的节点。链表是由一个一个的节点(结点)组成的。单链表:不带头单向不循环链表。不存在扩容:malloc。
2024-07-18 23:12:30
412
原创 c语言-操作符
0x6b:0x表示十六进制原码,反码,补码。整数的二进制位表示方法有三种:原码,反码,补码。三种表示方法均有符号位和数值位两部分。符号位用0表示正用1表示负正整数的原码反码补码都相同。负整数的三种表示方法各不相同。直接将数值按照正负数的形式翻译成二进制得到的就是原码将原码的符号位不变,其他位次按位取反就可以得到反码反码+1就得到补码对整数来说,数据存放在内存中其实是补码移位操作符<<左移操作符>>右移操作符移位操作符的操作数只能是整数左边抛弃,右边补0。
2024-02-01 16:00:05
855
1
原创 C语言-分支与循环
逻辑操作符:&& 与运算符 || 或运算符!sqrt(i):库函数。开平方的—包含头文件例:输入一个年龄,>=18就输出:成年,否则就输出:未成年。continue:跳过本次循环----出现在循环中。先对左边进行求值,在对右边进行求值。判断字符串是否相等:strcmp。C语言是结构化的程序设计语言。if语句:>一条语句要加大括号。:真:非零 假:0。if和else是就近原则。3个ctrl+z:停止。break:终止循环。
2024-01-27 20:45:04
427
原创 扫雷游戏代码实现-c语言
雷是’1’,非雷是’0’。没有排查’*',排查了数字字符。扫雷游戏功能说明:使用控制台实现经典的扫雷游戏。●游戏可以通过菜单实现继续玩或者退出游戏。game.h----游戏的函数的声明。test.c—专门测试的游戏逻辑。一会儿实现的时候需要两个数组。game.c----游戏实现。●扫雷的棋盘是9*9的格子。●默认随机布置10个雷。
2024-01-27 20:09:05
443
原创 猜数字小游戏的实现
猜数字游戏要求:1.电脑生成1~100的随机数2.玩家猜数字,猜数字的过程中,根据猜测数据的大小给出大了或小了的反馈,知道猜对,游戏结束。
2024-01-14 22:34:11
510
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅