LeetCode
LeetCode
EVIL_6
即将翻身的咸鱼
展开
-
C----回文链表
请判断一个链表是否为回文链表。 示例 1: 输入: 1->2 输出: false 示例 2: 输入: 1->2->2->1 输出: true 进阶: 你能否用 O(n) 时间复杂度和 O(1) 空间复杂度解决此题? 第一步:遍历链表,知道链表的长度,并找到中间节点(快慢指针实现);第二步:逆至前半段链表,使用两个指针,分别从头比较每一半的链表数值;需要注意的是链表长度可...原创 2019-11-29 19:38:42 · 162 阅读 · 0 评论 -
C----环形单链表
一、给定一个链表,判断链表中是否有环 为了表示给定链表中的环,我们使用整数pos来表示链表尾连接到链表中的位置(索引从0开始)。 如果 pos 是 -1,则在该链表中没有环。 /* Definition for singly-linked list struct ListNode { int val; ListNode *next; ListNode(in...原创 2019-11-29 19:38:58 · 116 阅读 · 0 评论 -
C----合并两个有序链表
将两个有序链表合并为一个新的有序链表并返回。 新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 /* Definition for singly-linked list. struct ListNode { int va...原创 2019-11-29 19:52:35 · 243 阅读 · 0 评论 -
C----走向斐波那契数列
Fibonacci数列是这样定义的:F[0] = 0,F[1] = 1;for each i ≥ 2; F[i] = F[i-1] + F[i-2] 即:0, 1, 1, 2, 3, 5, 8, 13, …,这些数称为Fibonacci数。给一个N,想让其变为一个Fibonacci数,每一步你可以把当前数字X变为X-1或者X+1,求最少需要多少步可以变为Fibonacci数。 输入描述:输入为一个...原创 2019-12-01 19:33:05 · 123 阅读 · 0 评论 -
C----链表的插入排序
从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示)。每次迭代时,从输入数据中移除一个元素,并原 地将其插入到已排好序的链表中。 插入排序算法: 插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。 每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。 重复直到所有输入数据插入完为止。 示例 1: 输入: 4...原创 2019-12-03 00:11:10 · 208 阅读 · 0 评论 -
C----数组形式的整数加法
对于非负整数 X 而言,X 的数组形式是每位数字按从左到右的顺序形成的数组。例如,如果 X = 1231,那么其数组形式为 [1,2,3,1]。(给定非负整数 X 的数组形式 A,返回整数 X+K 的数组形式) 示例: 输入:A = [2,1,5], K = 806 输入:A = [9,9,9,9,9,9,9,9,9,9], K = 1 输出:[1,0,2,1...原创 2019-12-07 23:46:13 · 150 阅读 · 0 评论 -
C----空格替换
将字符串中的空格替换为"%20" #include <stdio.h> void replaceSpace(char *str, int length) { if (str == NULL || length < 0) return; int i = 0; int oldnumber = 0; int replacenumber = 0; while (str[i]...原创 2019-12-18 16:09:11 · 97 阅读 · 0 评论 -
C----复制带随机指针的链表
给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。 要求返回这个链表的深拷贝。原创 2019-12-22 17:34:00 · 112 阅读 · 0 评论 -
C----有效的括号
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合;左括号必须以正确的顺序闭合;空字符串认为是有效字符串。 示例 输入: "()[]{}" 输入: "(]" 输入: "([)]" 输入: "{[]}" 输出: true ...原创 2019-12-27 15:34:24 · 120 阅读 · 0 评论