自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 代码随想录算法训练营第七天|454.四数相加II、383. 赎金信、15. 三数之和、18. 四数之和

这道题比“四数之和”简单的一个地方在于,从四元组中找到的组合不需要去重,找到多少个算多少个。如果四个元组分别为ABCD,整体思路是,把AB遍历完,将a+b的值放到一个集合里,然后再遍历CD时,去判断集合中有没有我们需要的-(c+d)使得四数之和为0。因此确定本题采用哈希法。本题数组下标来做映射的话,占用存储空间太大,所以排除数组。又因为需要统计符合条件的组合的个数,所以,此处采用map中的unordered_map。

2023-07-19 20:52:30 72

原创 代码随想录算法训练营第四天|24. 两两交换链表中的节点 、19.删除链表的倒数第N个节点 、02.07. 链表相交 、142.环形链表II

核心在于理清楚如何进行调换,每个步骤是如何执行的。对某个节点进行操作必须要利用它的上一个节点,因而位于两个交换节点前的cur是重要指针,所有操作都围绕它延伸。先弄清调换的顺序,如上图,有三个步骤,顺序是这样。为了防止丢失,需要用到两个temp指针。调换完,cur往后移两位。while的循环条件是cur下面的第一和第二位均不为空,这样才存在继续调换的可能。

2023-07-18 20:18:48 87 1

原创 代码随想录算法训练营第三天|203.移除链表元素、707.设计链表、206.反转链表

重点在认识到虚头节点的方便性。移除元素时要从这个元素的前一个结点p入手,p->next = p->next->next,另外要创建一个temp指针,把这个temp删掉。返回时注意返回虚拟头节点的next,而不是直接返回head,因为head可能也会被删,虚拟头节点存在的意义就是使得对头节点的删除操作可以变得和其他节点一样。

2023-07-18 19:15:15 81 1

原创 代码随想录算法训练营第六天|242.有效的字母异位词、349. 两个数组的交集、202. 快乐数、1. 两数之和

本次练习哈希表的应用思路都很清晰,但由于是第一次使用unordered_map,unordered_set这种数据结构,即便知道了思路,还是不能很顺手的写出来,还不太熟悉它的操作,需要多用几次。大致思路是,轮到数组的这个数num(例7)的时候,去找数组有没有遍历过target-num(例9-7=2)这个数,如果有,则存在两数之和的这两个数。一共有26个英文字母,数量比较少,因此可以采用数组哈希表的方法,把ASCII码作为这个字母的下标,数组中存储字母出现的次数。因此,直接返回这两个元素的下标。

2023-07-18 10:57:34 92 1

原创 代码随想录算法训练营第二天|977.有序数组的平方,209.长度最小的子数组,59.螺旋矩阵II

看到这道题很容易就想到了双指针法,把一个指针放在数组的第一位,另一个放在最后一位,这两个指向的数字相比较,大的那个就一定是平方最大的。以此类推,就能从大到小写出这个有序数组的平方的排序。但我一直在考虑找到了最大的数字后要如何挪动的问题,在这里卡住了。直到去稍微翻了一眼代码随想录的动图,发现可以再,开拓一个新的空间后就可以很方便地直接从大到小把结果丢进结果集中。

2023-07-13 22:51:30 324 1

原创 代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素

因为想着把两个指针的挪动都包在一个个i的for循环里,,所以在p和q++放的位置这里思考了很久,是先挪呢还是先判断呢,是把q++放到判断里呢还是判断外呢,好像总是想不出来一个满足所有特殊情况的做法。思路是:快指针采用for进行循环,一直在往后移,快指针还没遇到需要移除的元素的时候,q指针会跟着往后挪,不断的把旧数组中的元素放进新数组中。当快指针找到需要移除的元素时,慢指针就不会跟着快指针进行挪动,直到找到下一个可以更新的元素。这样,也就不用管p远离q很远了,反正遇到不移除的q更新就好了。

2023-07-12 21:50:50 736 1

原创 面向对象程序设计复习笔记

一个大学牲的C++考场小抄(bushi)~

2022-06-28 15:30:52 616

原创 电控部近期学习总结

目录Arduino基础入门基于arduino板控制小车让小车动起来学习PWM频率和占空比 初步调速利用麦克纳姆轮原理控制全向移动加入遥控小车功能稳定小车速度Arduino基础入门最开始那几天,由于没有找到好用的教程,再加上刚进入这个全新的领域,所以进度十分缓慢,不会连接电路,上传错误等问题频繁出现。但通过同伴的教程推荐,慢慢找到了学习的方法和路径。在通过阅读官方函数参考文档形成初步印象后,我借助Tony的arduino基础篇和中文社区中的小实验,慢慢熟悉了基本函..

2021-12-06 17:35:46 3882

原创 arduino

arduino入门小实验

2021-11-26 20:59:05 3754

原创 C语言基础复习

C语言入门基础复习

2021-11-22 20:55:24 497

原创 字符串入门(2021.11.13)

对于这样一个字符数组:char word[] = {'H','e' 'l','l','o','!'};这不是C语言的字符串,因为不能用字符串的方式做计算。如果在数组初始化的最后加上'\0'或者0,word还是字符数组,但其变成了C语言的字符串,可进行字符串运算了。接下来介绍字符串。字符串:是以0(整数0)结尾的一串字符。0或'\0'是一样的,但是和'0'(ASII码中的0,是人可以读到的0)不同。0表达的是int 整数的0,int可能是四个字节或更大,而'\0'一定是一个字节的东西。

2021-11-13 12:36:07 829

原创 指针入门与字符类型

取地址运算sizeof代表int在内存中代表四个字节,32个比特运算符获得变量的地址,它的操作数必须是地址取地址的对象必须是明确的变量,如果右边不是一个变量,而是&(a+b)...

2021-11-09 00:34:00 385

原创 数组运算(2021.10.31)

#include<stdio.h>int main(void){ int letter,blank,digit,other,n; char ch; digit = letter = other = blank =0; scanf("%d",&n); getchar(); int i; for(i = 1;i<=n;i++){ ch = getchar(); if((ch>='a'&&ch<='z')||(ch>.

2021-11-01 00:11:30 319

原创 复习与实操(2021.10.24)

整数值用%d输出,实数用%f输出。整数/整数=整数,浮点数/浮点数=浮点数。#include<stdio.h>int main(){ int n, m; scanf("%d", &n); m = (n%10)*100 + (n/10%10)*10 + (n/100); printf("%03d\n", m); return 0;}#include<stdio.h>int main(){ int a,b,n,m; scanf("%d",

2021-10-24 11:08:10 134

原创 数组(2021.10.19)

二维数组对于int a[3][5] 通常理解数组a是一个三行五列的矩阵;二维数组的遍历for( i=0;i<3;i++){ for( j=0;j<5;j++){ a[i][j] = i*j; }}a[i][j]是一个int,表示第i行第j列上的单元;二维数组的初始化:int a[][5] = { {0,1,2,3,4}, {2,3,4,5,6}, };列数是必须给出的,行数可以由编译器来数,可以省略每行一个{},用逗..

2021-10-19 12:16:17 280

原创 函数入门(2021.10.5)

初见函数例一:判断两个数之间有多少个素数,并计算这些素数的和:#include<stdio.h>int main(){ int m,n; int sum = 0; int cnt = 0; int i; scanf("%d %d",&m,&n); if ( m==1 ) m=2; //1不是素数,这一步使素数的判断从2开始 for ( i=m; i<=n; i++){ int isprime = 1;

2021-10-05 17:25:12 221

原创 数组(2021.10.3)

初试数组1.如何写一个程序计算用户输入的数字的平均数?#include<stdio.h>int main(){ int x; double sum=0; int cnt=0; scanf("%d",&x); while(x!=-1) { sum +=x; cnt++; scanf("%d",&x); } if(cnt>0){ printf("%f\n",sum/cnt); } return 0; } 此时不需要记

2021-10-03 17:11:07 176

原创 正序分解整数(13425--->1 3 4 2 5 )

如何倒序:#include<stdio.h>int main(){ int x; scanf("%d",&x); int t; do{ t=x%10; printf("%d",t); if(x>9)printf(" "); x /=10; }while(x>0); printf("\n"); return 0; }

2021-10-02 17:27:35 476

原创 2021-09-26

循环的应用:求最大公约数#include<stdio.h>int main(){ int a,b; scanf("%d %d",&a,&b); int min; if(a<b) { min=a; }else{min=b; } int ret=0; int i; for(i=1;i<min;i++) { if(a%i==0) { if(b%i==

2021-09-26 18:15:41 122

空空如也

空空如也

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

TA关注的人

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