草庐IT

LeetCode刷题第7周小结

全部标签

Leetcode算法系列| 8. 字符串转换整数 (atoi)

目录1.题目2.题解C#解法一:及其臃肿的代码C#解法二:DFA(确定有穷自动机)1.题目请你来实现一个myAtoi(strings)函数,使其能将字符串转换成一个32位有符号整数(类似C/C++中的atoi函数)。函数myAtoi(strings)的算法如下:1.读入字符串并丢弃无用的前导空格2.检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。确定最终结果是负数还是正数。如果两者都不存在,则假定结果为正。3.读入下一个字符,直到到达下一个非数字字符或到达输入的结尾。字符串的其余部分将被忽略。4.将前面步骤读入的这些数字转换为整数(即,“123”->123,“0032”

ZZ308 物联网应用与服务赛题第A套

2023年全国职业院校技能大赛中职组物联网应用与服务任务书(A卷)       赛位号:______________竞赛须知一、注意事项1.检查硬件设备、电脑设备是否正常。检查竞赛所需的各项设备、软件和竞赛材料等;2.竞赛任务中所使用的各类软件工具、软件安装文件等,都已拷贝至U盘上,根据竞赛任务要求自行使用;3.竞赛过程中应严格按照竞赛任务中的描述,对各物联网设备进行安装配置、操作使用,对于竞赛前已经连接好的设备,可能与后续的竞赛任务有关,请勿变动;4.提交的答案资料必须存储到指定位置,未存储到指定位置的答案均不得分;5.竞赛任务完成后,需要保存设备配置,不要关闭任何设备,不要拆动硬件的连接,

【OJ】牛客链表刷题

题目1.链表分割1.1题目分析1.2代码2.链表的回文结构2.1题目分析2.2代码这里两道与链表有关的题目均来自牛客。1.链表分割1.1题目分析因为这里代码不能选择用c语言写,所以选择用c++,因为c++兼容c。题目要求分割链表,我们可以直接弄成两个带哨兵位的链表,这样插入时就不用判断链表里面有没有节点。head1=tail1=(ListNode*)malloc(sizeof(ListNode));head2=tail2=(ListNode*)malloc(sizeof(ListNode));一个链表放小于x的节点,直接用尾插就能实现,if(cur->valx){tail1->next=cur

LeetCode 0070. 爬楼梯:动态规划(递推)

【LetMeFly】70.爬楼梯:动态规划(递推)力扣题目链接:https://leetcode.cn/problems/climbing-stairs/假设你正在爬楼梯。需要n 阶你才能到达楼顶。每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶呢? 示例1:输入:n=2输出:2解释:有两种方法可以爬到楼顶。1.1阶+1阶2.2阶示例2:输入:n=3输出:3解释:有三种方法可以爬到楼顶。1.1阶+1阶+1阶2.1阶+2阶3.2阶+1阶 提示:1方法一:动态规划(递推)第iii阶楼梯可以由第i−1i-1i−1阶或i−2i-2i−2阶楼梯而来,因此只需要将相邻两阶的方案数加起来,就能得到

【刷题】 leetcode 2 .两数相加

两数相加两数相加1思路一(暴毙版)2思路二(本质出发)谢谢阅读Thanks♪(・ω・)ノ下一篇文章见!!!!!!两数相加我们来看看题目,,,,往往困难的题只需要简单的叙述。好像只用找到两个数,整合成一个链表就可以。应该1思路一(暴毙版)首先我最快想到思路是分别根据两个链表求出对应数然后加一起,得到和再把和拆分储存到链表里为此我们需要手撕一下链表头插。typedefstructListNodeSLTNode;SLTNode*buynode(intn){ //开辟空间SLTNode*node=(SLTNode*)malloc(sizeof(SLTNode));node->next=NULL;nod

leetcode第206题反转链表❤

一:题目:给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。示例1:输入:head=[1,2,3,4,5]输出:[5,4,3,2,1]题目链接:力扣(LeetCode)官网-全球极客挚爱的技术成长平台二:解题思路 这道题我们可以用迭代或递归地反转链表。但是这个题更加适合迭代的方法去做。所以我们应该有的一个思维是三个指针立方向。 首先,我们要设置三个变量(这里的变量不要随便设,我们可以从前到后设置n1,n2,n3)反转链表我们只需要两个就行了,但是我们就找不到3了所以需要第三个变量,例如下面的图片但是仅仅分析到这里还是不够的,我们需要将新的next指向NULL,所以我们需要将n1

【Leetcode】移除后集合的最多元素数

目录💡题目描述💡思路💡总结100150.移除后集合的最多元素数💡题目描述给你两个下标从0开始的整数数组nums1和nums2,它们的长度都是偶数n。你必须从nums1中移除n/2个元素,同时从nums2中也移除n/2个元素。移除之后,你将nums1和nums2中剩下的元素插入到集合s中。返回集合s可能的最多包含多少元素。💡思路这道题是求两个数组nums1和nums2各移除长度的一半元素后,剩余元素组成的集合s可能包含的最大元素数量。主要思路是:1. 将nums1和nums2中的元素分别放入两个无序集set1和set2中,统计两个集合的大小n1和    n2,以及公共元素数量common2. 计

Leetcode的AC指南 —— 字符串/KMP:28.找出字符串中第一个匹配项的下标

摘要:Leetcode的AC指南——字符串/KMP:28.找出字符串中第一个匹配项的下标。题目介绍:给你两个字符串haystack和needle,请你在haystack字符串中找出needle字符串的第一个匹配项的下标(下标从0开始)。如果needle不是haystack的一部分,则返回-1。文章目录一、题目二、解析(go)1、一个简单的AC方法2、KMP算法:直接使用前缀表作为next数组三、其他语言版本JavaC++Python一、题目题目介绍:给你两个字符串haystack和needle,请你在haystack字符串中找出needle字符串的第一个匹配项的下标(下标从0开始)。如果nee

leetcode刷题记录11(2023-06-30)【最大正方形(二维动态规划) | 翻转二叉树(二叉树递归) |二叉树的最近公共祖先(二叉树后序遍历) | 除自身以外数组的乘积(前缀/后缀乘积)】

221.最大正方形在一个由‘0’和‘1’组成的二维矩阵内,找到只包含‘1’的最大正方形,并返回其面积。示例1:输入:matrix=[[“1”,“0”,“1”,“0”,“0”],[“1”,“0”,“1”,“1”,“1”],[“1”,“1”,“1”,“1”,“1”],[“1”,“0”,“0”,“1”,“0”]]输出:4示例2:输入:matrix=[[“0”,“1”],[“1”,“0”]]输出:1示例3:输入:matrix=[[“0”]]输出:0提示:m==matrix.lengthm==matrix.lengthm==matrix.lengthn==matrix[i].lengthn==matri

蓝桥杯第20天(Python)(疯狂刷题第3天)

题型:1.思维题/杂题:数学公式,分析题意,找规律2.BFS/DFS:广搜(递归实现),深搜(deque实现)3.简单数论:模,素数(只需要判断到 int(sqrt(n))+1),gcd,lcm,快速幂(位运算移位操作),大数分解(分解为质数的乘积)4.简单图论:最短路(一对多(Dijstra,临接表,矩阵实现),多对多(Floyd,矩阵实现)),最小生成树(并查集实现)5.简单字符串处理:最好转为列表操作6.DP:线性DP,最长公共子序列,0/1背包问题,最长连续字符串,最大递增子串7.基本算法:二分,贪心,组合,排列,前缀和,差分8.基本数据结构:队列,集合,字典,字符串,列表,栈,树9.