自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 力扣hot100第48旋转图像

很明显,红圈标注的已就位,转了一圈,最后又返回去了,从2开始也是一样的。服,这真是一个找规律,没有耐心的我,其中最需要考虑的就是覆盖的问题,我这里使用了两个临时变量来替换,会有点绕,也可以向题解那样,用一个(因为最初临时变量的赋值就不同)。嗯么,下一步想了好久,肯定不能直接搞2,先要把3放到自己的地方,先试试吧,这一试就是半天(夸张了,就是不想画了),上图,看我的挣扎。刚看到,呀,这不很简单嘛,一行旋转后不就成一列了嘛,直接上手,唉,还不让用额外数组,那初想法,哈哈,就不用写了,那就推一推公式吧。

2024-08-08 20:42:38 134

原创 力扣hot100第73矩阵置零

再优化的话,就只能优化空间了,哈哈,看题解,先看了第三种方法,算了,什么鬼,看不懂极致的优化,还是看第二种,直接在原数组的基础上,将第0行和第0列拿出来标记,本身的数据,用两个变量来保存,空间复杂度就可达到O(1)。我本来用了一个数组存储,用下标作为行,值作为列,在vs上可以运行,在力扣上却出现字符对其的问题,代码先放到这里,还没找到解决方法,有大佬看出来的话,可以指导指导。我采用的是,将找到的下标也作为新申请数组的下标,将其值置为1,初始化时初始为其他值,这样在遍历时,直接用下标即可。

2024-07-27 22:51:07 311

原创 力扣hot100第41缺失的第一个正数

遍历数组,如果x在1-N范围内,就将下标为x-1的位置的数标记一下(题解中采用负数来标记,那本身数组中的负数全部改为N+1),因为下标和实际会差个1。我把题解代码也附上。若最小正数是从1开始的,就要去判断后面的,再分成两种情况,像这种1、2、3...连续的,肯定缺失的是n+1,若不连续,就是当前正数+1。看题解,利用哈希表(刚开始还没搞懂),先说我疑惑的问题,为什么N可以作为标准呢,就是因为找的是最小的正数,数组大小确定,就算里面是很大的数,那缺失的还是1-N之中的(不是很严谨,懂了意思就行),比如。

2024-07-27 17:37:49 324

原创 力扣hot100第189轮转数组

事与愿违,用例不通过,时间复杂度有点高,那就优化一下,用空间换时间,将每个元素的最终位置用下标和k计算出来,最终的下标位置为index=(i+k)%nums.size(),因为考虑到后面元素的覆盖,所以要用一个数组将原来的数据存起来。这道题挺简单,那就先将数组的最后一个元素进行头插,再删掉,这样循环k次即可。和题解的方法一是差不多的,我这个复杂度更高一点。

2024-07-22 17:48:28 225

原创 力扣hot100第56合并区间

所以就要想办法固定一个变量,使得情况减少。将区间左侧的大小固定,先按照左区间进行排序,之后在result中先放一个区间,让原本的区间和这个区间进行比较,如果当前区间的左端点大于result中最后一个区间的右端点,肯定没有重合,之间push_back到result中;相反如果小于,就会有重合,其左端点是不变的(因为本来就是根据左端点进行排序的,当前区间的左端点肯定不会小于result中最后一个区间的左端点,只需要判断右端点),右端点就选择两个区间右端点的较大值。浪费时间,浪费脑细胞。写法还需要再熟悉一下。

2024-07-22 16:50:03 184

原创 力扣hot100第76最小覆盖子串(自我经历版)

看了题解之后,其实思想不差,就是滑动窗口不能像之前一样跨度太大,用了两个哈希表,一个用来存t中元素和元素的个数,另一个是维护滑动窗口内元素和个数,单独写一个函数checkcontain判断滑动窗口内的元素是否包含t中的所有元素,一开始想的就只判断元素是否存在,但如果t中有重复元素还要判断元素个数。当包含t,left++,滑动窗口缩小,while循环的判断条件一定要注意注意注意注意注意注意注意注意注意注意注意注意注意注意注意注意,一定要转为int,今天看书刚好看到,分享一下为什么。

2024-07-16 20:57:44 285

原创 力扣hot100第239滑动窗口最大值

意料之中,还是不通过,看题解,呃,用了优先队列,思想是一模一样的,还是要熟悉C++的STL库,就不必自己一个一个写了。代码拉过来看一下吧。滑动窗口每次只是向右移动一次,可能就会出现 这种情况,上一次的最大值仍在新的滑动窗口内,只需要比较这个最大的和新进的即可。肯定过不了,那就浅浅优化一下,每个滑动窗口的值并不是都需要全部重新找最大值,如下图。其他就算了,智力有限,笑死,就是不想看。话不多说,直接上手,双重循环。

2024-07-15 20:30:44 193

原创 力扣hot100第560和为K的子数组

第一个肯定就是暴力解法,枚举所有的情况,利用双循环遍历,因为输入数据并不是有序的,可能会有负数,遍历也就不能优化枚举次数。本来都不想再看其他方法,懒,但是力扣现在肯定不会让暴力解法完全通过测试用例的。一上来脑子一热开始排序,哈哈,一定要看清题,是去找子串的,要和前面的题区分开。重要的是pre[i]=pre[j]-k这里脑子要转一下弯。

2024-07-15 18:32:47 224

原创 Linux中的复制进程fork

Linux中的复制进程fork

2022-09-20 20:51:04 284 1

原创 2022-2-25,python打卡,if语句

一、一个简单示例有一个汽车列表,对于大多数汽车,应以首字母大写的方式打印,但对于'bmw'应以全大写的方式打印,这时候循环语句中就用到了条件语句。#一个简单示例cars=['audi','bmw','subaru','toyota']for car in cars: if car=='bmw': print(car.upper()) else: print(car.title())写循环和条件语句时,一定要注意缩进,注意语句的从属关系。二、if语句1.简单的if语句

2022-02-25 13:31:16 496

原创 2022-2-24 python打卡,操作列表继续(元组)

五、元组python将不能修改的值称为不可变的,而不可变的列表被称为元组。1.定义元组元组看起来很像列表,但使用圆括号而非中括号来标识。定义元组后,就可以使用索引来访问其元素,和访问列表元素一样。eg:有一个大小不应改变的矩形,#定义元组dimensions=(200,50)print(dimensions[0])print(dimensions[1])#错误,元组的元素不可改变dimensions[0]=250还要注意:元组是由逗号标识的,圆括号只是让元组看起来更整

2022-02-24 11:39:41 323

原创 2022-2-23,今日打卡python列表,紧接昨天内容

四、使用列表的一部分,1.切片,切片的意思就是将列表切成一段一段的,满足我们对列表元素的部分使用。要创建切片,可以指定要使用的第一个元素和最后一个元素的索引,和昨天说的range()一样,python在到达第二个索引之前的元素后停止,所以要输出列表中前三个元素,需要索引0-3,即 索引为0,1,2的元素,如下图,(1)指定开头和结尾打印#将列表切片players=['clarles','eeli','abde','martina']print(players[0:3])(2

2022-02-23 10:35:19 330

原创 2022-2-22,今日打卡,python基本语法,操作列表

一、遍历整个列表,肯定要用到for循环去访问列表中的每个元素,首先建一个列表,如下图举例:magicians=['alice','david','carolina']#遍历整个列表for magician in magicians: print(magician)与C语言不同的是,python中的语句没有;{}等等这些符号,所以在写for 循环时一定要注意,对于for循环下的语句,要后退两格,编译器会自动空格,用这种方法来表示属性关系。...

2022-02-22 16:48:30 411

原创 今日打卡,2022-2-18,python语法(列表的简单定义及用到的函数和方法)

最近比较懒呀,好几天都没写了。。。一、组织列表1.使用方法sort()对列表永久排序,按字母顺序排列的话,不需要传参;相反按字符的相反顺序排列的话,需要传递参数reverse=True。两种顺序排列对列表元素的顺序修改是永久性的。#使用sort()对列表永久排序#按字母顺序排列cars=['bmw','audi','toyota','subaru']cars.sort()print(cars)#按字母的相反顺序排列cars.sort(reverse=True)print(ca

2022-02-18 13:23:14 345

原创 今天继续排序--选择排序和堆排序(C语言)

一、选择排序 1.算法思想:从待排序中选出最小的一个数和待排序的第一个数据交换注意:因要用这个选出的最小数,一定要保存最小数的下标 2.根据上面的思想下面举例,大家看完之后也可以自己举例,按照这个方法排序eg: 这是一串原始数据,假设第一个数据34是最小的,minlndex保存的是最小值的下标,那么此时34后面的数据为待排数据,利用循环在待排数据中找最小的0,和此时的34交换(如下图), 此时的0已经有序,排除不用参与后面的排序,这时将minlndex假设为5的下标...

2022-02-17 14:07:00 880

原创 C语言-排序中的快速排序(简称快排)

快速排序算法思想:(举例说明)(1)简单总结三步:第一步,从后往前找比基准小的数据,往前挪第二步,从前往后找比基准大的数据,往后挪第三步,重复第一步和第二步(2)eg: 34, 5, 6,22,56,88,11,2,4,0(一段非有序整数数据)定义一个下标low指向这一段数据的第一个,即34;定义一个下标high指向这段数据的最后一个,即0;找一个基准,一般找这一段数据的第一个就行,也就是low下标所指的值34;(3)依次进行(1)中所说步骤,第一步,因为0&

2022-02-15 14:08:35 13448

原创 2022-2-12打卡,继续列表的语法哦,努力努力。。。

1.从列表中删除元素:(1)用del()方法,格式:del+列表名+要删除元素的索引号eg:del mortbicycles[3](删除mortbicycles列表中第4个元素),注意注意是第四个元素不是第三个哦哦。如果对建列表有问题,请参考上一篇文章哦,在这里直接给出删除前和删除后的结果对比。#从列表中删除元素#用del()方法del mortbicycles[0]print(mortbicycles)(2)方法pop(),相当于弹出栈顶元素,所以主要使用在你将从列表中删.

2022-02-12 14:31:27 160

原创 2022-2-11日python基础语法打卡,继续加油哦。。。

1.python中的数:与C不同的是,python中任意两个数相除结果都为浮点数,若想得到其他结果要进行强制类型转换,在以下代码中注释较多,在工作中肯定要写注释,提高代码的可读性。#在python中任意两个数相除都是浮点数a=4/2print(a)#书写的数较大时,会使用下划线,但打印该数时并不打印# 注意:仅python3.6以上版本支持universe_age=14_000_000_000print(universe_age)#同时给多个变量赋值x,y,z=1,2,3pri

2022-02-11 16:18:52 343

原创 开始学习python,有想一起的吗,快来瞅一瞅,从基本的语法开始哦,大家交流交流,今天##字符串的基本语法使用

first_name="ada"last_name="lovelace"#字符串中使用变量的值,多个变量形成一个字符串#格式:f"变量名"||f"字符串" # 注意:f字符串 是python3.6引入的,较低版本要使用format()方法full_name=f"{first_name} {last_name}"full_name="{} {}".format(first_name,last_name)print(full_name)#字符串的表示与大小写的集合#两种形式,1....

2022-02-10 17:29:47 292

原创 十六进制转八进制(十六进制转十进制,十进制转八进制)

##刚开始学习C的小白,2022-1-11第一篇,分享自己写的十六转八进制,欢迎各位指导!!![可爱皱眉][可爱皱眉][可爱皱眉][可爱皱眉][可爱皱眉]在此程序中,将十六进制转成十进制,再转成八进制(也可将十六进制转为二进制,再转为八进制)这两种方法均可实现,从此程序中也可提取十六进制转十进制、十进制转八进制的转换方法。以下代码在visual studio上可正常运行。#define _CRT_SECURE_NO_WARNINGS//因为新标准下scanf不安全,在此编译器上可用这个宏定义#def

2022-01-11 19:40:17 1613

空空如也

空空如也

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

TA关注的人

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