LeeCode
LeeCode做题记录
*Summer
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Leecode 1700-无法吃午餐的学生数量(队列)
题目代码若喜欢栈顶的甜点的学生存在,那么不管他们在队伍的哪个位置,必定会遍历到他。否则,一定无法继续拿掉栈顶甜点。要点:学生位置可变,三明治位置不可变。先统计学生中对两种三明治的需求人数,之后遍历三明治数组,如果栈顶的三明治还有对应的学生,那么该三明治一定会被拿走,否则之后所有的三明治都无法在被拿走,输出剩下的学生数目,即无法拿走午餐的学生数目。int countStudents(int* students, int studentsSize, int* sandwiches, int san原创 2021-08-27 23:34:07 · 834 阅读 · 0 评论 -
Leecode 237-删除链表中的结点
题目请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点。传入函数的唯一参数为 要被删除的节点 。例子输入:head = [4,5,1,9], node = 5输出:[4,1,9]解释:给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.提示:1. 链表至少包含两个节点。2. 链表中所有节点的值都是唯一的。3. 给定的节点为非末尾节点并且一定是链表中的一个有效节点。4. 不要从你的函数中返回任何结果。代码/**原创 2021-08-25 22:25:00 · 294 阅读 · 0 评论 -
Leecode 203-移除链表元素
题目描述给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。代码原创 2021-08-24 22:57:49 · 311 阅读 · 0 评论 -
Leecode 160-相交链表
题目描述给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。提示:listA 中节点数目为 mlistB 中节点数目为 n0 <= m, n <= 3 * 1041 <= Node.val <= 1050 <= skipA <= m0 <= skipB <= n如果 listA 和 listB 没有交点,intersectVal 为 0如果 listA原创 2021-08-23 22:30:33 · 273 阅读 · 0 评论 -
Leecode 14-环形链表
题目给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。注意:pos 不作为参数进行传递,仅仅是为了标识链表的实际情况。如果链表中存在环,则返回 true 。 否则,返回 false 。进阶:你能用 O(1)(即,常量)内存解决此问题吗?代码一:/** * Definition for原创 2021-08-23 21:06:44 · 131 阅读 · 0 评论 -
Leecode 83-删除排序链表中的重复元素
题目存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。返回同样按升序排列的结果链表。提示:1. 链表中节点数目在范围 [0, 300] 内2. -100 <= Node.val <= 1003. 题目数据保证链表已经按升序排列代码一/** * Definition for singly-linked list. * struct ListNode { * int val; * struc原创 2021-08-22 23:53:26 · 191 阅读 · 0 评论 -
Leecode 21-合并两个有序链表
题目将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的示例 2:输入:l1 = [], l2 = []输出:[]示例 3:输入:l1 = [], l2 = [0]输出:[0]提示:1. 两个链表的节点数目范围是 [0, 50]2. -100 <= Node.val <= 1003. l1 和 l2 均按 非递减顺序 排列代码/** * Definition for singly-linked list. *原创 2021-08-22 23:22:25 · 196 阅读 · 0 评论 -
Leecode-2 两数相加(链表)
题目描述给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例 2:输入:l1 = [0], l2 = [0]输出:[0]示例 3:输入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]输出:[8,9,9,9,0,0,0,1]提示:1. 每个链表中的节点数在范围 [1, 100] 内原创 2021-08-21 23:36:54 · 220 阅读 · 0 评论 -
Leecode 217存在重复元素
题目给定一个整数数组,判断是否存在重复元素。如果存在一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。输入: [1,2,3,1]输出: true代码int cmp(const void *a,const void *b){ return *(int *)a-*(int *)b;//这是从小到大排序,若是从大到小改成: return *(int *)b-*(int *)a;}bool containsDuplicate(int* nu原创 2021-08-01 21:35:29 · 143 阅读 · 0 评论 -
leecode7 整数反转
题目给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。代码一(假设环境不允许存储 64 位整数(有符号或无符号)。)int reverse(int x){ int s=0; while(x!=0) { if(s<INT_MIN/10||s>INT_MAX/10) return 0; s=s原创 2021-07-31 23:18:03 · 228 阅读 · 0 评论 -
leecode13罗马数字转整数
题目罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。原创 2021-07-31 17:00:31 · 140 阅读 · 0 评论 -
leeCode 9-回文数
题目给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。又比如:x = -121,从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。方法一:将输入的整数存到一个字符串数组中,然后再逆序存放到另一个字符串数组中,再使用strcmp函数比较两个字符串是否相等方法一代码:bool isPalindrome(int x){原创 2021-07-30 22:29:12 · 372 阅读 · 0 评论
分享