草庐IT

Leetcode6

全部标签

LeetCode | 206. 反转链表

LeetCode|206.反转链表OJ链接这里有两个思路我们先来看第一个思路:创建一个新的链表,然后将原链表头插头插需要保存下一个的地址,再头插代码如下:structListNode*reverseList(structListNode*head){structListNode*cur=head;structListNode*newHead=NULL;while(cur){structListNode*next=cur->next;//头插cur->next=newHead;newHead=cur;cur=next;}returnnewHead;}思路二:这个思路二,就是定义三个指针,n1,n

leetcode 74. 搜索二维矩阵(java)

搜索二维矩阵leetcode74.搜索二维矩阵题目描述抽象BST代码演示抽象BSTleetcode74.搜索二维矩阵来源:力扣(LeetCode)链接:https://leetcode.cn/problems/search-a-2d-matrix题目描述给你一个满足下述两条属性的mxn整数矩阵:每行中的整数从左到右按非递减顺序排列。每行的第一个整数大于前一行的最后一个整数。给你一个整数target,如果target在矩阵中,返回true;否则,返回false。示例1:输入:matrix=[[1,3,5,7],[10,11,16,20],[23,30,34,60]],target=3输出:tru

leetcode:206. 反转链表

一、题目 函数原型:structListNode*reverseList(structListNode*head)二、思路要对链表进行反转,可以有两种方法:1.改变链表中每个结点之间的指针域指向,最后返回尾结点即可。2.新建一个链表,将原链表中的结点依次头插到新链表中,最后返回新链表。三、代码实现代码1/***Definitionforsingly-linkedlist.*structListNode{*intval;*structListNode*next;*};*/structListNode*reverseList(structListNode*head){if(head==NULL)/

leetcode链表

这几天手的骨裂稍微好一点了,但是还是很疼,最近学校的课是真多,我都没时间做自己的事,但是好在今天下午是没有课的,我也终于可以做自己的事情了。今天分享几道题目移除链表元素这道题我们将以两种方法开解决,但是我觉得从总体思路上来讲,都可以称为双指针,第一个就是我们在我们原链表上进行修改,我们和之前顺序表的一个题目很是相似,就是我们遇到val就删除,那因为是链表,我们可以理解为释放它这个当前的空间,然后进行当前位置的前一个和后以一个位置的链接就行。我们给两个指针,然后cur的作用就是进行遍历,我们的prev这个指针就是找到它当前位置的前一个位置,因为我们要删除当前的位置,如果没有前面这个前驱指针,我们

算法leetcode|87. 扰乱字符串(rust重拳出击)

文章目录87.扰乱字符串:样例1:样例2:样例3:提示:分析:题解:rust:go:c++:python:java:87.扰乱字符串:使用下面描述的算法可以扰乱字符串s得到字符串t:如果字符串的长度为1,算法停止如果字符串的长度>1,执行下述步骤:在一个随机下标处将字符串分割成两个非空的子字符串。即,如果已知字符串s,则可以将其分成两个子字符串x和y,且满足s=x+y。随机决定是要「交换两个子字符串」还是要「保持这两个子字符串的顺序不变」。即,在执行这一步骤之后,s可能是s=x+y或者s=y+x。在x和y这两个子字符串上继续从步骤1开始递归执行此算法。给你两个长度相等的字符串s1和s2,判断s

【LeetCode力扣】11. 盛最多水的容器 (中等)

 目录1、题目介绍2、解题2.1、解题思路 2.2、图解说明 2.3、解题代码1、题目介绍原题链接:11.盛最多水的容器-力扣(LeetCode)输入:[1,8,6,2,5,4,8,3,7]输出:49解释:图中垂直线代表输入数组[1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水(表示为蓝色部分)的最大值为 49。示例2:输入:height=[1,1]输出:1提示:n==height.length202、解题2.1、解题思路这道题最优的方法就是用双指针,我们可以用指针left和指针right分别指向数组height[]的第一个数和最后一个数,然后每次经过比较两个指针指向的数值的大

【leetcode报错】 leetcode格式问题解决:error: stray ‘\302’ in program [solution.c]

leetcode格式问题解决一、情景再现二、报错原因三、解决方法四、修正结果一、情景再现二、报错原因该错误是指源程序中有非法字符,需要将非法字符去掉。一般是由于coder1.使用中文输入法或者2.从别的地方直接复制粘贴代码造成的。代码中出现了中文空格,中文引号,各种中文标点符号都会出现,这是复制后leetcode的格式问题,简单修改一下就OK了。三、解决方法(1)把出错行的空格及其前后空格删掉重新打一下,看是否还是出现问题。(2)把明显和其他标点符号颜色不同的改掉。(大部分编译器都有颜色识别)(3)在出现问题的行中,删掉直接全部重打。四、修正结果成功啦>o( ̄▽ ̄)ブ

LeetCode 热题100——链表专题(一)

一、俩数相加2.俩数相加(题目链接)思路:这题题目首先要看懂,以示例1为例 即 342+465=807,而产生的新链表为7->0->8.可以看成简单的从左向右,低位到高位的加法运算,4+6=10,逢10进1,新链表第三位为3+4+1(第二位进的1),需要注意的的点是当9->9->9和9->9->9->9相加,相当于9->9->9->0和9->9->9->9相加代码实现:/***Definitionforsingly-linkedlist.*structListNode{*intval;*structListNode*next;*};*/typedefstructListNodeListNode

leetcode-经典面/笔试题目

1.消失的数字面试题17.04.消失的数字-力扣(LeetCode)https://leetcode.cn/problems/missing-number-lcci/这个题目当然有好几种解法,这里我推荐一种比较优秀的思路,也就是单身狗思路:异或。异或的特点是相异为一,相同为0,也就是两个相同的数字异或就等于0.那么我们只需要使用两个循环就能解决问题。第一个循环遍历nums这个数组的所有元素,由于少了一个元素5,所以判断条件是i那么我们就可以理解为tail在同时遍历两个数组,这里大家需要知道的一个小知识是3^4^3^4的最终结果还是0,因为这里可以使用交换律,就是3^3^4^4,就相当与两个0最

【LeetCode力扣】287.寻找重复数(中等)

1、题目介绍原题链接:287.寻找重复数-力扣(LeetCode)示例1:输入:nums=[1,3,4,2,2]输出:2示例2:输入:nums=[3,1,3,4,2]输出:3提示:1nums.length==n+11nums 中 只有一个整数 出现 两次或多次 ,其余整数均只出现 一次2、解题2.1、解题思路当我们用一个指针i=0以i=nums[i];的方式遍历数组nums[]后可以得到图1,因为数组nums[]中一定存在的重复的数字 target,所以 target=(6) 这个位置一定有起码两条指向它的边,因此整张图一定存在环,且我们要找到的target就是这个环的入口,同时也是这道题的答