LeetCode
hang-7788
SDN初学者,目前主要学习底层转发设备OVS。
展开
-
LeetCode 78. 子集 Subsets(C语言)
题目描述:给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。示例:输入: nums = [1,2,3]输出:[[3],[1],[2],[1,2,3],[1,3],[2,3],[1,2],[]]题目解答:方法1:回溯算法运行时间ms,代码如下。/** * Return an array of arra...原创 2019-01-03 10:57:35 · 1749 阅读 · 1 评论 -
LeetCode 79. 单词搜索 Word Search(C语言)
题目描述:给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例:board =[[‘A’,‘B’,‘C’,‘E’],[‘S’,‘F’,‘C’,‘S’],[‘A’,‘D’,‘E’,‘E’]]给定 word = “ABCCED”, ...原创 2019-01-03 22:26:53 · 893 阅读 · 0 评论 -
LeetCode24. 两两交换链表中的节点 Swap Nodes in Pairs(C语言)
题目描述:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.说明:你的算法只能使用常数的额外空间。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。题目解答:方法1:遍历交换为了保证逻辑简单,排除特殊情况,插入头结点,另外使用三个指针。运行时间0...原创 2018-12-18 15:51:40 · 431 阅读 · 0 评论 -
LeetCode 22. 括号生成 Generate Parentheses(C语言)
题目描述:给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出 n = 3,生成结果为:[“((()))”,“(()())”,“(())()”,“()(())”,“()()()”]题目解答:方法1:回溯算法for循环+递归。记录当前用的左括号数目bef及未成对的左括号数目single,根据这两个数字可以计算出当前用了多少个...原创 2018-12-18 15:23:08 · 2174 阅读 · 1 评论 -
LeetCode 21. 合并两个有序链表 Merge Two Sorted Lists(C语言)
题目描述:将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4题目解答:方法1:直接遍历申请头结点,方便在后边插入节点。运行时间4ms,代码如下。/** * Definition for singly...原创 2018-12-18 13:01:47 · 293 阅读 · 0 评论 -
LeetCode 20. 有效的括号 Valid Parentheses(C语言)
题目描述:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false...原创 2018-12-18 11:25:24 · 681 阅读 · 0 评论 -
LeetCode 19. 删除链表的倒数第N个节点 Remove Nth Node From End of List(C语言)
题目描述:给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?题目解答:方法1:双指针为了防止特殊情况,申请一个空的头节点,让...原创 2018-12-18 11:13:08 · 146 阅读 · 0 评论 -
LeetCode 18. 四数之和 4Sum(C语言)
题目描述:给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要求的四元组集...原创 2018-12-18 10:52:44 · 1479 阅读 · 2 评论 -
LeetCode 73. 矩阵置零 Set Matrix Zeroes(C语言)
题目描述:给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。示例 1:输入:[[1,1,1],[1,0,1],[1,1,1]]输出:[[1,0,1],[0,0,0],[1,0,1]]示例 2:输入:[[0,1,2,0],[3,4,5,2],[1,3,1,5]]输出:[[0,0,0,0],[...原创 2018-12-28 14:37:18 · 730 阅读 · 0 评论 -
LeetCode 71. 简化路径 Simplify Path(C语言)
题目描述:给定一个文档 (Unix-style) 的完全路径,请进行路径简化。例如,path = "/home/", => "/home"path = "/a/./b/../../c/", => "/c"边界情况:你是否考虑了 路径 = “/…/” 的情况?在这种情况下,你需返回 “/” 。此外,路径中也可能包含多个斜杠 ‘/’ ,如 “/home//foo/” 。...原创 2018-12-28 14:14:35 · 1178 阅读 · 0 评论 -
LeetCode 48. 旋转图像 Rotate Image(C语言)
题目描述:给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例 1:给定 matrix =[[1,2,3],[4,5,6],[7,8,9]],原地旋转输入矩阵,使其变为:[[7,4,1],[8,5,2],[9,6,3]]示例 2:给...原创 2018-12-22 21:46:45 · 577 阅读 · 0 评论 -
LeetCode 47. 全排列 II Permutations II(C语言)
题目描述:给定一个可包含重复数字的序列,返回所有不重复的全排列。示例:输入: [1,1,2]输出:[[1,1,2],[1,2,1],[2,1,1]]题目解答:方法1:回溯因为有重复元素,所以需要先排序,然后进行回溯。注意要过滤掉重复元素。/** * Return an array of arrays of size *returnSize. * Note: The...原创 2018-12-22 21:13:49 · 577 阅读 · 0 评论 -
LeetCode 70. 爬楼梯 Climbing Stairs(C语言)
题目描述:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1 阶 + 1 阶 + 1 阶1 阶 + 2 阶2 ...原创 2018-12-28 14:03:45 · 386 阅读 · 0 评论 -
LeetCode 69. x 的平方根 Sqrt(x)(C语言)
题目描述:实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842…,由于返回类型是整数,小数部分将被舍去。题目解答:方法1:暴力法:从1开始向后遍历,直至其平方大于x。...原创 2018-12-28 13:59:22 · 321 阅读 · 0 评论 -
LeetCode 46. 全排列 Permutations (C语言)
题目描述:给定一个没有重复数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]题目解答:方法1:回溯使用循环+递归,并利用标记数组,来标记每个数字是否使用过,使用过则跳过,没使用过则可以使用,并且要记得取消标记。运行时间4ms,代码如下。/**...原创 2018-12-22 16:08:15 · 1623 阅读 · 4 评论 -
LeetCode 43. 字符串相乘 Multiply Strings(C语言)
题目描述:给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = “2”, num2 = “3”输出: “6”示例 2:输入: num1 = “123”, num2 = “456”输出: “56088”说明:num1 和 num2 的长度小于110。num1 和 n...原创 2018-12-21 17:36:27 · 2411 阅读 · 0 评论 -
LeetCode 80. 删除排序数组中的重复项 II Remove Duplicates from Sorted Array II(C语言)
题目描述:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定 nums = [1,1,1,2,2,3],函数应返回新长度 length = 5, 并且原数组的前五个元素被修改为 1, 1, 2, 2, 3 。你不需要考虑数组中超出新...原创 2019-01-03 22:33:54 · 145 阅读 · 0 评论 -
LeetCode 81.搜索旋转排序数组 II Search in Rotated Sorted Array II(C语言)
题目描述:假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,0,1,2,2,5,6] 可能变为 [2,5,6,0,0,1,2] )。编写一个函数来判断给定的目标值是否存在于数组中。若存在返回 true,否则返回 false。示例 1:输入: nums = [2,5,6,0,0,1,2], target = 0输出: true示例 2:输入: nums...原创 2019-01-03 22:40:22 · 156 阅读 · 0 评论 -
LeetCode 77. 组合 Combinations(C语言)
题目描述:给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。示例:输入: n = 4, k = 2输出:[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4],]题目解答:方法1:回溯算法循环加递归,记录前边存储的数字,当存储k个即可存储在结果中。也可以先计算出总共用多少个结果,这样就可以直接给result申请对应大的空...原创 2019-01-03 10:30:55 · 1266 阅读 · 0 评论 -
LeetCode 75. 颜色分类 Sort Colors(C语言)
题目描述:给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]进阶:一个直观的解决方案是使用计数排序的两趟扫描算...原创 2019-01-03 10:13:17 · 670 阅读 · 0 评论 -
LeetCode 74. 搜索二维矩阵 Search a 2D Matrix(C语言)
题目描述:编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。每行的第一个整数大于前一行的最后一个整数。示例 1:输入:matrix = [[1, 3, 5, 7],[10, 11, 16, 20],[23, 30, 34, 50]]target = 3输出: true示例 2:输入:ma...原创 2019-01-02 23:16:44 · 468 阅读 · 0 评论 -
LeetCode 59. 螺旋矩阵 II Spiral Matrix II(C语言)
题目描述:给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例:输入: 3输出:[[ 1, 2, 3 ],[ 8, 9, 4 ],[ 7, 6, 5 ]]题目解答:方法1:遍历按顺序放置数字,上边,右边,下边,左边。运行时间0ms,代码如下。/** * Return an array of arrays. * N...原创 2018-12-26 13:12:04 · 266 阅读 · 0 评论 -
LeetCode 58. 最后一个单词的长度 Length of Last Word(C语言)
题目描述:给定一个仅包含大小写字母和空格 ’ ’ 的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0 。说明:一个单词是指由字母组成,但不包含任何空格的字符串。示例:输入: “Hello World”输出: 5题目解答:方法1:遍历遍历的过程中,记录上一个单词的长度。运行时间0ms,代码如下。int lengthOfLastWord(char* s) ...原创 2018-12-26 13:07:32 · 196 阅读 · 0 评论 -
LeetCode 56. 合并区间 Merge Intervals(C语言)
题目描述:给出一个区间的集合,请合并所有重叠的区间。示例 1:输入: [[1,3],[2,6],[8,10],[15,18]]输出: [[1,6],[8,10],[15,18]]解释: 区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].示例 2:输入: [[1,4],[4,5]]输出: [[1,5]]解释: 区间 [1,4] 和 [4,5] 可被视为重叠区...原创 2018-12-25 20:08:15 · 2705 阅读 · 1 评论 -
LeetCode 55. 跳跃游戏 Jump Game(C语言)
题目描述:给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个位置。示例 1:输入: [2,3,1,1,4]输出: true解释: 从位置 0 到 1 跳 1 步, 然后跳 3 步到达最后一个位置。示例 2:输入: [3,2,1,0,4]输出: false解释: 无论怎样,你总会到达索引为 3 的...原创 2018-12-25 20:03:14 · 828 阅读 · 0 评论 -
LeetCode 54. 螺旋矩阵 Spiral Matrix(C语言)
题目描述:给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。示例 1:输入:[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]]输出: [1,2,3,6,9,8,7,4,5]示例 2:输入:[[1, 2, 3, 4],[5, 6, 7, 8],[9,10,11,12]]输出: [1,...原创 2018-12-25 19:46:56 · 499 阅读 · 0 评论 -
LeetCode 88. 合并两个有序数组 Merge Sorted Array(C语言)
题目描述:给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nu...原创 2019-01-04 23:18:34 · 962 阅读 · 4 评论 -
LeetCode 86. 分隔链表 Partition List(C语言)
题目描述:给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。示例:输入: head = 1->4->3->2->5->2, x = 3输出: 1->2->2->4->3->5题目解答:方法1:双指针两个指针分别记录比x大的节...原创 2019-01-04 23:13:33 · 511 阅读 · 0 评论 -
LeetCode 53. 最大子序和 Maximum Subarray(C语言)
题目描述:给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。进阶:如果你已经实现复杂度为 O(n) 的解法,尝试使用更为精妙的分治法求解。题目解答:方法1:暴力法求每个数字到其后每个数字的连续...原创 2018-12-24 23:44:33 · 281 阅读 · 0 评论 -
LeetCode 50. Pow(x, n) (C语言)
题目描述:实现 pow(x, n) ,即计算 x 的 n 次幂函数。示例 1:输入: 2.00000, 10输出: 1024.00000示例 2:输入: 2.10000, 3输出: 9.26100示例 3:输入: 2.00000, -2输出: 0.25000解释: 2-2 = 1/22 = 1/4 = 0.25说明:-100.0 < x < 10...原创 2018-12-24 23:01:57 · 392 阅读 · 0 评论 -
LeetCode 49. 字母异位词分组 Group Anagrams(C语言)
题目描述:给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”],输出:[[“ate”,“eat”,“tea”],[“nat”,“tan”],[“bat”]]说明:所有输入均为小写字母。不考虑答案输出的顺序。题目解答:方法1:Hash...原创 2018-12-24 22:43:11 · 1176 阅读 · 0 评论 -
LeetCode 83. 删除排序链表中的重复元素 Remove Duplicates from Sorted List(C语言)
题目描述:给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3题目解答:方法1:遍历拿当前的与下一个进行比较,相等则删除下一个,不等则更新当前节点。运行时间4ms,代码如下。/** * D...原创 2019-01-03 22:55:12 · 290 阅读 · 0 评论 -
LeetCode 82. 删除排序链表中的重复元素 II Remove Duplicates from Sorted List II(C语言)
题目描述:给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。示例 1:输入: 1->2->3->3->4->4->5输出: 1->2->5示例 2:输入: 1->1->1->2->3输出: 2->3题目解答:方法1:三指针遍历利用三个指针head,t1,t2...原创 2019-01-03 22:50:27 · 224 阅读 · 0 评论 -
LeetCode 40. 组合总和 II Combination Sum II(C语言)
题目描述:给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用一次。说明:所有数字(包括目标数)都是正整数。解集不能包含重复的组合。示例 1:输入: candidates = [10,1,2,7,6,1,5], target = 8,所求...原创 2018-12-21 16:59:11 · 444 阅读 · 0 评论 -
LeetCode 39. 组合总和 Combination Sum(C语言)
题目描述:给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。示例 1:输入: candidates = [2,3,6,7], target = 7,所求解...原创 2018-12-21 16:52:19 · 1021 阅读 · 0 评论 -
LeetCoe 38. 报数 Count and Say(C语言)
题目描述:报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1112112111112211 被读作 “one 1” (“一个一”) , 即 11。11 被读作 “two 1s” (“两个一”), 即 21。21 被读作 “one 2”, “one 1” (“一个二” , “一个一”) , 即 1211。给定一个正整数 n(1 ≤...原创 2018-12-21 16:17:12 · 267 阅读 · 0 评论 -
LeetCode 28. 实现strStr() Implement strStr()(C语言)
题目描述:实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack = “aaaaa”, need...原创 2018-12-19 19:31:39 · 343 阅读 · 1 评论 -
LeetCode 27. 移除元素 Remove Element(C语言)
题目描述:给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例 1:给定 nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的...原创 2018-12-19 19:23:39 · 464 阅读 · 0 评论 -
LeetCode 26. 删除排序数组中的重复项 Remove Duplicates from Sorted Array(C语言)
题目描述:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:...原创 2018-12-19 19:18:05 · 225 阅读 · 1 评论 -
LeetCode 11. 盛最多水的容器 Container With Most Water (C语言)
题目描述:给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。说明:你不能倾斜容器,且 n 的值至少为 2。图中垂直线代表输入数组 [1,8,6,2,5,4,8,3,7]。在此情况下,容器能够容纳水...原创 2018-12-06 15:41:56 · 518 阅读 · 0 评论