草庐IT

Leetcode刷题第六周

全部标签

【LeetCode】67. 二进制求和

67.二进制求和难度:简单题目给你两个二进制字符串a和b,以二进制字符串的形式返回它们的和。示例1:输入:a="11",b="1"输出:"100"示例2:输入:a="1010",b="1011"输出:"10101"提示:1a和b仅由字符'0'或'1'组成字符串如果不是"0",就不含前导零个人题解思路:从后往前遍历字符逐个判断即可最后考虑是否进位sum&1等价于sum%2classSolution{publicStringaddBinary(Stringa,Stringb){StringBuilderans=newStringBuilder();intca=0;for(inti=a.length

利用Python进行数据分析【送书第六期:文末送书】

👨‍🎓博主简介  🏅云计算领域优质创作者  🏅华为云开发者社区专家博主  🏅阿里云开发者社区专家博主💊交流社区:运维交流社区欢迎大家的加入!🐋希望大家多多支持,我们一起进步!😄🎉如果文章对你有帮助的话,欢迎点赞👍🏻评论💬收藏⭐️加关注+💗文章目录前言《利用Python进行数据分析》的历史作译者简介主要变动导读视频:购书链接:文末福利中奖名单--待定前言想学习python进行数据分析,这本《利用python进行数据分析》是绕不开的一本书。目前该书根据Python3.10已经更新到第三版。《利用Python进行数据分析》的历史Python语言极具吸引力。自从1991年诞生以来,Python如今已经

LeetCode - 142. 环形链表 II (C语言,快慢指针,配图)

    如果你对快慢指针,环形链表有疑问,可以参考下面这篇文章,了解什么是环形链表后,再做这道题会非常简单,也更容易理解下面的图片公式等。LeetCode-141.环形链表(C语言,快慢指针,配图)-CSDN博客    上述文章总结:如果一个链表是环形链表,采用快慢指针,快慢指针会在环中相遇,从而得到相遇点。理论基础:    当链表是环形链表的时候,一个指针从入口位置开始,一个指针从相遇点开始,他们相遇的那个点就是入口点。我们可以从下面这张图中了解。代码展示:structListNode*detectCycle(structListNode*head){structListNode*fast=

刷题笔记(第八天)

1.请补全JavaScript代码,实现一个函数,要求如下:根据输入的数字范围[start,end]和随机数个数"n"生成随机数生成的随机数存储到数组中,返回该数组返回的数组不能有相同元素注意:不需要考虑"n"大于数字范围的情况输入:getUniqueNums(2,10,4)输出:[4,6,2,8]const_getUniqueNums=(start,end,n)=>{leta=[];letcount=0;while(countn){letx=Math.floor(Math.random()*(end-start)+start)if(a.indexOf(x)===-1){a.push(x);c

LeetCode 热题100——栈与队列专题(三)

一、有效的括号20.有效的括号(题目链接)思路:1)括号的顺序匹配:用栈实现,遇到左括号入,遇到右括号出(保证所出的左括号与右括号对应),否则顺序不匹配。2)括号的数量匹配:1>左括号大于右括号:用栈实现,遇到左括号入,遇到右括号出,遍历完字符数组,此时栈不为空,则说明左括号数量大于右括号;2>右括号大于左括号:遇到右括号出时,判断栈是否为空,若此时栈为空,说明右括号数量大于左括号;typedefcharSDateType;typedefstructStack{ SDateType*a; inttop; intcapacity;}Stack;//初始化栈和销毁栈voidInitStack(St

【LeetCode 热题 100】图论 专题(bfs,拓扑排序,Trie树 字典树)

from:https://leetcode.cn/studyplan/top-100-liked/bfs具有边权为1的最短路性质拓扑排序,入度Trie树,高效存储字符串【见鬼,不知道为什么写错,需要掌握熟练度】文章目录200.岛屿数量【dfs/bfs】994.腐烂的橘子【bfs具有边权为1的最短路性质】207.课程表【拓扑排序】208.实现Trie(前缀树)【模板题】200.岛屿数量【dfs/bfs】dfs写法,比较简洁classSolution{public:intdx[4]={-1,0,1,0},dy[4]={0,1,0,-1};intn,m;intnumIslands(vector>&g

【刷题专栏—突破思维】LeetCode 142. 环形链表 II

前言:本篇博客将讲解三个OJ题,前两个作为铺垫,最后完成环形链表的节点的寻找文章目录一、160.相交链表二、141.环形链表三、142.环形链表II一、160.相交链表题目链接:LeetCode—相交链表题目描述:给你两个单链表的头节点headA和headB,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回null。图示两个链表在节点c1开始相交:注意,函数返回结果后,链表必须保持其原始结构。评测系统将根据这些输入创建链式数据结构,并将两个头节点headA和headB传递给你的程序。如果程序能够正确返回相交节点,那么你的解决方案将被视作正确答案。示例1:输入:inter

LeetCode | 19. 删除链表的倒数第 N 个结点

LeetCode|19.删除链表的倒数第N个结点OJ链接思路:定义虚拟头节点dummy并初始化使其指向head然后定义快慢指针让快指针先走n步然后一起走最后删除倒数第n个节点然后释放虚拟节点dummystructListNode*removeNthFromEnd(structListNode*head,intn){//定义虚拟头节点dummy并初始化使其指向headstructListNode*dummy=malloc(sizeof(structListNode));dummy->val=0;dummy->next=head;//定义fastslow双指针structListNode*fast

leetcode——设计循环队列

设计循环队列这个题目在这里小编只分享一个解题思路,因为还有一个思路小编还在尝试,一直过不了,还在这里不断尝试,等我试出来的时候我在分享给大家,首先我们在这里给出的是数组的形式,后面在分享单链表的思路,因为数组在内存上是连续的,这里给出的思路是多开出一个空间的内存,然后我们在进行插入和删除,下面给一个图来给大家来看看。我们可以看到我们这个数组其实是来存储四个字节大小的,但是我们多存储一个int类型大小的空间,如果tail+1==head的话我们就当空间是满的。但是当我们的head是和tail相等的时候我们就可以认为是空的,所以这里多开一个空间的作用就出来了,就是可以保证这两个有区别,如果我们不是

LeetCode | 225. 用队列实现栈

LeetCode|225.用队列实现栈OJ链接此题可以用两个队列去实现一个栈,每次始终保持一个队列为空,入栈操作相当于给非空队列进行入队操作入数据,把不为空的队列入出数据,把不为空的队列数据导入为空,直到最后一个出栈操作相当于非空队列的队尾元素出队,此时需要把非空队列除最后一个元素之外的其余元素入队到空队列,然后出队最后一个队尾元素代码如下:#include#include#include#includetypedefintQDataType;typedefstructListQNode{ QDataTypeval; structListQNode*next;}QNode;typedefstr