自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 收藏
  • 关注

原创 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 711

原创 LeetCode 71. 简化路径 Simplify Path(C语言)

题目描述:给定一个文档 (Unix-style) 的完全路径,请进行路径简化。例如,path = "/home/", => "/home"path = "/a/./b/../../c/", => "/c"边界情况:你是否考虑了 路径 = “/…/” 的情况?在这种情况下,你需返回 “/” 。此外,路径中也可能包含多个斜杠 ‘/’ ,如 “/home//foo/” 。...

2018-12-28 14:14:35 1150

原创 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 339

原创 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 306

转载 Linux 虚拟内存和物理内存的理解 (转载)

转载于:https://www.cnblogs.com/panchanggui/p/9288389.html关于Linux 虚拟内存和物理内存的理解。首先,让我们看下虚拟内存:第一层理解每个进程都有自己独立的4G内存空间,各个进程的内存空间具有类似的结构一个新进程建立的时候,将会建立起自己的内存空间,此进程的数据,代码等从磁盘拷贝到自己的进程空间哪些数据在哪里,都由进程控制表中的tas...

2018-12-27 17:14:02 1080

原创 LeetCode 67. 二进制求和 Add Binary(C语言)

题目描述:给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。示例 1:输入: a = “11”, b = “1”输出: “100”示例 2:输入: a = “1010”, b = “1011”输出: “10101”题目解答:方法1:逆向遍历记录标记位,将标记位与两个字符串的对应位相加,分析和,确定当前位的值和是否需要进位。...

2018-12-27 14:18:12 985 1

原创 LeetCode 66. 加一 Plus One(C语言)

题目描述:给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321...

2018-12-27 14:12:43 246

原创 LeetCode 64. 最小路径和 Minimum Path Sum(C语言)

题目描述:给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。示例:输入:[[1,3,1],[1,5,1],[4,2,1]]输出: 7解释: 因为路径 1→3→1→1→1 的总和最小。题目解答:方法1:动态规划每个位置存储到达当前位置(i, j)的最小路径和,(i - 1, ...

2018-12-27 14:03:38 578

原创 LeetCode 63. 不同路径 II Unique Paths II(C语言)

题目描述:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径?网格中的障碍物和空位置分别用 1 和 0 来表示。说明:m 和 n 的值均不超过 100。示例 1:输入:[[...

2018-12-27 13:58:42 429

原创 LeetCode 62. 不同路径 Unique Paths(C语言)

题目描述:一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?说明:m 和 n 的值均不超过 100。示例 1:输入: m = 3, n = 2输出: 3解释:...

2018-12-27 13:54:26 229

原创 LeetCode 61. 旋转链表 Rotate List(C语言)

题目描述:给定一个链表,旋转链表,将链表每个节点向右移动 k 个位置,其中 k 是非负数。示例 1:输入: 1->2->3->4->5->NULL, k = 2输出: 4->5->1->2->3->NULL解释:向右旋转 1 步: 5->1->2->3->4->NULL向右旋转 2 步

2018-12-26 13:54:27 226

原创 LeetCode 60. 第k个排列 Permutation Sequence(C语言)

题目描述:给出集合[1,2,3,…,n]其所有元素共有 n! 种排列。按大小顺序列出所有排列情况,并一一标记,当 n = 3 时, 所有排列如下:“123”“132”“213”“231”“312”“321”给定 n 和 k,返回第 k 个排列。说明:给定 n 的范围是 [1, 9]。给定 k 的范围是[1, n!]。示例 1:输入: n = 3, k = 3...

2018-12-26 13:42:41 795

原创 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 252

原创 LeetCode 58. 最后一个单词的长度 Length of Last Word(C语言)

题目描述:给定一个仅包含大小写字母和空格 ’ ’ 的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0 。说明:一个单词是指由字母组成,但不包含任何空格的字符串。示例:输入: “Hello World”输出: 5题目解答:方法1:遍历遍历的过程中,记录上一个单词的长度。运行时间0ms,代码如下。int lengthOfLastWord(char* s) ...

2018-12-26 13:07:32 181

原创 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 2662 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 787

原创 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 469

转载 C语言-堆和栈的生长方向

转自 https://blog.csdn.net/u012569119/article/details/47776845如何判断栈的增长方向?对于一个用惯了i386系列机器的人来说,这似乎是一个无聊的问题,因为栈就是从高地址向低地址增长。不过,显然这不是这个问题的目的,既然把这个问题拿出来,问的就不只是i386系列的机器,跨硬件平台是这个问题的首先要考虑到的因素。在一个物质极大丰富的年代,除...

2018-12-25 14:24:52 937

原创 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 256

原创 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 374

原创 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 1134

原创 Linux 内核模块相关命令

lsmodlsmod查看内核中已加载的模块状态,也可以通过/proc/modules来查看已加载的模块。lsmod | grep openvswitch的结果中:第一列是模块名字;第二列是模块大小,表示多少字节;第三列是一个数字,表示正在使用该模块的实例数。 如果该数字为零,则当前未使用该模块;第四列表示使用该模块的可用信息:这通常是设备名称,文件系统标识符或其他模块的名称。in...

2018-12-24 10:40:11 625

原创 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 545

原创 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 557

原创 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 1590 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 2369

原创 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 424

原创 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 994

原创 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 250

原创 LeetCode 36. 有效的数独 Valid Sudoku(C语言)

题目描述:判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用 ‘.’ 表示。示例 1:输入:[[“5”,“3”,".",".",“7...

2018-12-21 16:08:13 401

原创 LeetCode 35. 搜索插入位置 Search Insert Position(C语言)

题目描述:给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输...

2018-12-21 15:58:23 261

原创 LeetCode 34. 在排序数组中查找元素的第一个和最后一个位置 Find First and Last Position of Element in Sorted Array(C语言)

题目描述:给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例 2:输入: nums = [5,7,7,8,8,...

2018-12-21 15:45:10 224

原创 LeetCode 33. 搜索旋转排序数组 Search in Rotated Sorted Array(C语言)

题目描述:假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为[4,5,6,7,0,1,2] )。搜索一个给定的目标值,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。你可以假设数组中不存在重复的元素。你的算法时间复杂度必须是 O(log n) 级别。示例 1:输入: nums = [4,5,6,7,0,1,2]...

2018-12-21 14:51:07 174

原创 LeetCode 31. 下一个排列 Next Permutation (C语言)

题目描述:实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1题目解答:方法1:逆向遍历要找到比之前更...

2018-12-21 13:50:54 270

原创 LeetCode 29. 两数相除 Divide Two Integers(C语言)

题目描述:给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。示例 1:输入: dividend = 10, divisor = 3输出: 3示例 2:输入: dividend = 7, divisor = -3输出: -2说明:被除数和除...

2018-12-21 13:28:07 534

原创 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 336 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 417

原创 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 210 1

转载 C语言高维数组&数组指针&指针数组

高维数组如二维数组: int a[10][20]指针数组元素为指针的数组,如:int* p[n],p是一个数组,数组中元素为int*,且有n个元素。数组指针(行指针)指向数组的指针,如:int (*p)[n],p是一个指针,指向数组的指针,且数组种有n个int元素。由于[]的优先级比*高,所以需要加括号,不加括号就变成了指针数组。p+1要跨过n个元素。int num[3]; //num...

2018-12-18 17:42:30 1123

原创 LeetCode24. 两两交换链表中的节点 Swap Nodes in Pairs(C语言)

题目描述:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.说明:你的算法只能使用常数的额外空间。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。题目解答:方法1:遍历交换为了保证逻辑简单,排除特殊情况,插入头结点,另外使用三个指针。运行时间0...

2018-12-18 15:51:40 421

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除