
C语言
文章平均质量分 64
码农在途
『 码农在途 』公众号作者 ,在这里你会看见一个编程小白成长的历程。感谢你的关注 ,期待和你一起共同成长。
展开
-
LeetCode . 142. 环形链表 II
142. 环形链表 II 题目链接给定一个链表,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。说明:不允许修改给定的链表。示例 1:输入:head = [3,2,0,-4], pos = 1输出:tail conne...原创 2019-03-02 15:26:20 · 159 阅读 · 0 评论 -
左耳听风 第十二周
左耳听风 第十二周每周完成一个ARTS: 每周至少做一个 leetcode 的算法题、阅读并点评至少一篇英文技术文章、学习至少一个技术技巧、分享一篇有观点和思考的技术文章。(也就是 Algorithm、Review、Tip、Share 简称ARTS)AlgorithmLeetCode 944.删造序列LeetCode.942 增减字符串匹配reviewI interviewed a...原创 2019-01-27 16:56:44 · 389 阅读 · 0 评论 -
LeetCode 944.删造序列
LeetCode 944.删造序列题目链接给定由 N 个小写字母字符串组成的数组 A,其中每个字符串长度相等。选取一个删除索引序列,对于 A 中的每个字符串,删除对应每个索引处的字符。 所余下的字符串行从上往下读形成列。比如,有 A = [“abcdef”, “uvwxyz”],删除索引序列 {0, 2, 3},删除后 A 为[“bef”, “vyz”], A 的列分别为[“b”,“v...原创 2019-01-26 11:02:20 · 336 阅读 · 0 评论 -
LeetCode.942 增减字符串匹配
增减字符串匹配 题目链接给定只含 “I”(增大)或 “D”(减小)的字符串 S ,令 N = S.length。返回 [0, 1, …, N] 的任意排列 A 使得对于所有 i = 0, …, N-1,都有:如果 S[i] == “I”,那么 A[i] < A[i+1]如果 S[i] == “D”,那么 A[i] > A[i+1]示例 1:输出:“IDID”输出:[...原创 2019-01-25 16:58:23 · 337 阅读 · 0 评论 -
LeetCode 832.翻转图像
翻转图像题目链接给定一个二进制矩阵 A,我们想先水平翻转图像,然后反转图像并返回结果。水平翻转图片就是将图片的每一行都进行翻转,即逆序。例如,水平翻转 [1, 1, 0] 的结果是 [0, 1, 1]。反转图片的意思是图片中的 0 全部被 1 替换, 1 全部被 0 替换。例如,反转 [0, 1, 1] 的结果是 [1, 0, 0]。示例 1:输入: [[1,1,0],[...原创 2019-01-18 19:05:51 · 445 阅读 · 0 评论 -
LeetCode 905. 按奇偶排序数组
905. 按奇偶排序数组题目链接给定一个非负整数数组 A,返回一个由 A 的所有偶数元素组成的数组,后面跟 A 的所有奇数元素。你可以返回满足此条件的任何数组作为答案。示例:输入:[3,1,2,4]输出:[2,4,3,1]输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。解题思路:这里将判断是否为偶数改为了「&」(与运算),当计算数据...原创 2019-01-18 16:33:02 · 191 阅读 · 0 评论 -
LeeetCode 961.重复 N 次的元素
961.重复 N 次的元素在大小为 2N 的数组 A 中有 N+1 个不同的元素,其中有一个元素重复了 N 次。返回重复了 N 次的那个元素。示例 1:输入:[1,2,3,3]输出:3示例 2:输入:[2,1,2,5,3,2]输出:2示例 3:输入:[5,1,5,2,5,3,5,4]输出:5提示:4 &lt;= A.length &lt;= 10000...原创 2019-01-12 13:45:02 · 215 阅读 · 0 评论 -
LeetCode 709. 转换成小写字母
709. 转换成小写字母题目链接实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串。示例 1:输入: “Hello”输出: “hello”示例 2:输入: “here”输出: “here”示例 3:输入: “LOVELY”输出: “lovely”解题思路 :大写字母的 ASCLL...原创 2019-01-12 12:14:02 · 349 阅读 · 0 评论 -
左耳听风 第九周
左耳听风 第九周每周完成一个ARTS: 每周至少做一个 leetcode 的算法题、阅读并点评至少一篇英文技术文章、学习至少一个技术技巧、分享一篇有观点和思考的技术文章。(也就是 Algorithm、Review、Tip、Share 简称ARTS)AlgorithmLeetCode 844. 比较含退格的字符串LeetCode 148-排序链表Reviewhow to learn ...原创 2019-01-06 16:57:27 · 472 阅读 · 0 评论 -
简单分析 C 语言的 qsort() 源码
简单分析 C 语言的 qsort() 源码stdlib.h 是使用 C 语言需要引入的库,在系统文件下可以搜索到这个文件夹,在里面可以看到有一个 qsort() 文件用编译器或者记事本打开就能看到里面的源码了。单从文件名看,qsort() 采用的是快速排序算法,算法的时间复杂度为 O(nlogn) ,通常在企业的实际应用中对于快排这种 nlogn 复杂度的算法应用较多,对于 O(n) 例如 ...原创 2019-01-06 16:53:08 · 6430 阅读 · 0 评论 -
LeetCode 657. 机器人能否返回原点
机器人能否返回原点在二维平面上,有一个机器人从原点 (0, 0) 开始。给出它的移动顺序,判断这个机器人在完成移动后是否在 (0, 0) 处结束。移动顺序由字符串表示。字符 move[i] 表示其第 i 次移动。机器人的有效动作有 R(右),L(左),U(上)和 D(下)。如果机器人在完成所有动作后返回原点,则返回 true。否则,返回 false。注意:机器人“面朝”的方向无关紧...原创 2019-01-27 17:01:46 · 279 阅读 · 0 评论 -
LeetCode 461. 汉明距离
汉明距离两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离。注意:0 ≤ x, y &lt; 231.示例:输入: x = 1, y = 4输出: 2解释:1 (0 0 0 1)4 (0 1 0 0)↑ ↑上面的箭头指出了对应二进制位不同的位置。解题思路:while 循环 X...原创 2019-01-27 17:11:20 · 338 阅读 · 0 评论 -
LeetCode. 950 按递增顺序显示卡牌
按递增顺序显示卡牌 题目链接牌组中的每张卡牌都对应有一个唯一的整数。你可以按你想要的顺序对这套卡片进行排序。最初,这些卡牌在牌组里是正面朝下的(即,未显示状态)。现在,重复执行以下步骤,直到显示所有卡牌为止:从牌组顶部抽一张牌,显示它,然后将其从牌组中移出。如果牌组中仍有牌,则将下一张处于牌组顶部的牌放在牌组的底部。如果仍有未显示的牌,那么返回步骤 1。否则,停止行动。返回能以递...原创 2019-02-26 09:36:36 · 306 阅读 · 0 评论 -
LeetCode. 23 - 合并 K个排序序列
合并 K 个排序序列 题目链接合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[1->4->5,1->3->4,2->6]输出: 1->1->2->3->4->4->5->6解题思路:采用分治的思想,将 K 个链表的合并问题转换成,合并 2 个有序链表的问题type...原创 2019-02-19 09:59:17 · 285 阅读 · 0 评论 -
LeetCode· 88. 合并两个有序数组
合并两个有序数组 题目链接给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0]...原创 2019-02-24 12:04:21 · 627 阅读 · 0 评论 -
LeetCode.169 - 求众数
求众数 题目链接给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在众数。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2解题思路:将数组排序,统计每个数字出现的次数,当满足众数条件时返回。时间复杂度 nlognint co...原创 2019-02-13 12:01:08 · 159 阅读 · 0 评论 -
数组常见操作
数组常见操作动态数组动态数组:在声明时未确定其大小,有需要时再重新定义其大小。思路:1、在动态数组初始化时给其一个默认大小,当默认数组大小无法满足操作需要时,扩充数组大小。2、在扩充数组大小时,每次将数组扩充为原有的 2 倍大小,直到满足要求。注:realloc 重新定义数组大小时,若新分配内存大于原有内存,则数组数据不会丢失,若内存比原有内存小则丢失数据。int* dynami...原创 2019-02-23 18:00:18 · 388 阅读 · 0 评论 -
LeetCode. 15 - 三数之和
三数之和题目链接给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[[-1, 0, 1],[-1, -1, 2]]解题思路...原创 2019-02-12 22:56:43 · 184 阅读 · 0 评论 -
LeetCode.141 - 环形链表
环形链表 题目链接给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。示例 1:输入:head = [3,2,0,-4], pos = 1输出:true解释:链表中有一个环,其尾部连接到第二个节点。示例 2:输入:head = [1,2], po...原创 2019-02-17 12:09:35 · 149 阅读 · 0 评论 -
LeetCode. 41 - 缺失的第一个正数
缺失的第一个正数 题目链接给定一个未排序的整数数组,找出其中没有出现的最小的正整数。示例 1:输入: [1,2,0]输出: 3示例 2:输入: [3,4,-1,1]输出: 2示例 3:输入: [7,8,9,11,12]输出: 1参考了社区的解答。解题思路 :1、由题可得数组索引 index 对应的值为 index + 1,整个数组的取值范围为 [ 1 , ...原创 2019-02-16 11:04:52 · 190 阅读 · 0 评论 -
LeetCode 476、数字的补数
476、数字的补数 题目链接给定一个正整数,输出它的补数。补数是对该数的二进制表示取反。注意:给定的整数保证在32位带符号整数的范围内。你可以假定二进制数不包含前导零位。示例 1:输入: 5输出: 2解释: 5的二进制表示为101(没有前导零位),其补数为010。所以你需要输出2。示例 2:输入: 1输出: 0解释: 1的二进制表示为1(没有前导零位),其补数...原创 2019-02-03 16:04:44 · 234 阅读 · 0 评论 -
LeetCode 844. 比较含退格的字符串
844. 比较含退格的字符串给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。示例 1:输入:S = “ab#c”, T = “ad#c”输出:true解释:S 和 T 都会变成 “ac”。示例 2:输入:S = “ab##”, T = “c#d#”输出:true解释:S 和 T 都会变成 “”。...原创 2019-01-05 14:39:24 · 352 阅读 · 0 评论 -
LeetCode 148-排序链表
LeetCode 148.排序链表 题目链接在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序。示例 1:输入: 4->2->1->3输出: 1->2->3->4示例 2:输入: -1->5->3->4->0输出: -1->0->3->4->5解题思路:我采用的是一原创 2019-01-05 12:15:02 · 265 阅读 · 0 评论 -
左耳听风 第八周
左耳听风 第八周每周完成一个ARTS: 每周至少做一个 leetcode 的算法题、阅读并点评至少一篇英文技术文章、学习至少一个技术技巧、分享一篇有观点和思考的技术文章。(也就是 Algorithm、Review、Tip、Share 简称ARTS)AlgorithmLeetCode242. 有效的字母异位词 + 350. 两个数组的交集 IIReviewThe Mistakes I ...原创 2018-12-31 00:05:41 · 454 阅读 · 0 评论 -
PTA 递增的整数序列链表的插入
递增的整数序列链表的插入本题要求实现一个函数,在递增的整数序列链表(带头结点)中插入一个新整数,并保持该序列的有序性。函数接口定义:List Insert( List L, ElementType X );其中List结构定义如下:typedef struct Node PtrToNode;struct Node {ElementType Data; / 存储结点数据 ...原创 2018-12-20 14:56:07 · 2799 阅读 · 1 评论 -
PTA 单链表的创建及遍历
单链表的创建及遍历 题目链接需要权限读入n值及n个整数,建立单链表并遍历输出。输入格式:读入n及n个整数。输出格式:输出n个整数,以空格分隔(最后一个数的后面没有空格)。输入样例:在这里给出一组输入。例如:210 5输出样例:在这里给出相应的输出。例如:10 5思路分析 :当指针指向下一结点为 NULL 时做好特殊输出即可#include <...原创 2018-12-20 11:06:41 · 7912 阅读 · 3 评论 -
PTA 两个有序链表序列的合并
两个有序链表序列的合并 题目链接解题语言 C需要访问权限已知两个非降序链表序列S1与S2,设计函数构造出S1与S2合并后的新的非降序链表S3。输入格式:输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。输出格式:在一行中输出合并后新的非降序链表,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NUL...原创 2018-12-20 10:56:20 · 5520 阅读 · 0 评论 -
Algorithm LeetCode 237 + LeetCode 206
Algorithm 第五周LeetCode 237. 删除链表中的节点题目链接 解题语言 : C请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。现有一个链表 – head = [4,5,1,9],它可以表示为:4 -> 5 -> 1 -> 9示例 1:输入: head = [4,5,1,9], node = 5输...原创 2018-12-09 12:26:45 · 582 阅读 · 2 评论 -
数据结构 比较链表和数组
数据结构 比较链表和数组计算机的资源是有限的 , 而人对计算机的需求是无限的 。 好的数据机构和算法便是为了更好的满足计算机使用者的需求 , 而这也是计算机操作系统意义所在。 在学习数据结构的同时 , 了解一定的计算机操作系统知识有助于更好的理解其意义所在。 而了解数据结构和算法 会更容易明白操作系统的工作原理。广义上讲 , 数据结构是数据的存储结构 , 而算法就是操作数据的方法 。数...原创 2018-12-01 20:41:59 · 289 阅读 · 0 评论 -
左耳听风 第四周
左耳听风 第四周每周完成一个ARTS: 每周至少做一个 leetcode 的算法题、阅读并点评至少一篇英文技术文章、学习至少一个技术技巧、分享一篇有观点和思考的技术文章。(也就是 Algorithm、Review、Tip、Share 简称ARTS)Algorithm先总结 : 这周换了方式 , 根据数据结构的学习路线从头开始刷题 , 在学习数据结构知识的同时提高自己的编程能力 。 之前的...原创 2018-12-02 15:53:24 · 205 阅读 · 0 评论 -
LeetCode 66 Plus One
LeetCode 66 Plus One 题目链接 解题语言 : C给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3] 输出: [1,2,4] 解释: 输入数组表示数字 123。 示例 2:输入: [4,3,2,1] 输出...原创 2018-12-02 11:51:05 · 150 阅读 · 0 评论 -
C 语言 初探链表
在学习链表之前我们要先了解 结构 、 空指针C 语言除了数组还有 : 结构 、 联合和枚举三种类型结构 ( struct ) : 可以是多种不同类型数据的成员集合 , 成员之间存储在不同的内存地址。简单示例struct Person //声明一个结构类型 { char name[8]; int age; }; Person programmer = {&amp;quot;hack-hu&amp;quot;,99...原创 2018-11-25 16:07:13 · 321 阅读 · 0 评论 -
左耳听风专栏 第三周
左耳听风第三周每周完成一个ARTS: 每周至少做一个 leetcode 的算法题、阅读并点评至少一篇英文技术文章、学习至少一个技术技巧、分享一篇有观点和思考的技术文章。(也就是 Algorithm、Review、Tip、Share 简称ARTS)Algorithm设计链表 设计链表 解题语言 C题目 :设计链表的实现。您可以选择使用单链表或双链表。单链表中的节点应该具有两个...原创 2018-11-25 16:40:23 · 907 阅读 · 0 评论 -
PTA 建立学生信息链表
建立学生信息链表题目链接 ,需要权限本题要求实现一个将输入的学生成绩组织成单向链表的简单函数。函数接口定义:void input();该函数利用scanf从输入中获取学生的信息,并将其组织成单向链表。链表节点结构定义如下:struct stud_node {int num; /学号/char name[20]...原创 2018-12-20 15:02:23 · 5636 阅读 · 2 评论 -
PTA 学生成绩链表处理
学生成绩链表处理题目链接 ,需要权限本题要求实现两个函数,一个将输入的学生成绩组织成单向链表;另一个将成绩低于某分数线的学生结点从链表中删除。函数接口定义:struct stud_node *createlist();struct stud_node *deletelist( struct stud_node *head, int min_score );函数createli...原创 2018-12-20 15:05:52 · 4618 阅读 · 0 评论 -
LeetCode242. 有效的字母异位词 + 350. 两个数组的交集 II
242. 有效的字母异位词 题目链接给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。示例 1:输入: s = “anagram”, t = “nagaram”输出: true示例 2:输入: s = “rat”, t = “car”输出: false说明:你可以假设字符串只包含小写字母。解题思路 :此题参考了讨论区其他朋友的代码 ...原创 2018-12-31 00:03:35 · 167 阅读 · 0 评论 -
归并排序 and 快速排序
归并排序 and 快速排序 ( C 语言实现 )归并排序含义 :将将一串混乱数字分成无数个以两个数字为集合的小块,此时只要对两个元素进行排序即可,再无数个有序小块合并成一个有序集合,排序的过程就完成了。将一个大的集合分成无数的小的集合,符合了『 分治法 』中将一个大的问题分成小问题来解决的思想,而对两个元素进行排序,再将各个小的有序集合合并成一个大的有序集合这个过程就是『 治 』。算法不仅...原创 2018-12-23 17:26:13 · 589 阅读 · 0 评论 -
左耳听风 第七周
左耳听风 第七周每周完成一个ARTS: 每周至少做一个 leetcode 的算法题、阅读并点评至少一篇英文技术文章、学习至少一个技术技巧、分享一篇有观点和思考的技术文章。(也就是 Algorithm、Review、Tip、Share 简称ARTS)AlgorithmLeetCode 922. 按奇偶排序数组 II + 349. 两个数组的交集ReviewTip分享一个在 《 软件工...原创 2018-12-23 21:42:10 · 356 阅读 · 0 评论 -
LeetCode 922. 按奇偶排序数组 II + 349. 两个数组的交集
LeetCode922. 按奇偶排序数组 II 题目链接解题语言 C题目描述评论 (25)官方题解提交记录给定一个非负整数数组 A, A 中一半整数是奇数,一半整数是偶数。对数组进行排序,以便当 A[i] 为奇数时,i 也是奇数;当 A[i] 为偶数时, i 也是偶数。你可以返回任何满足上述条件的数组作为答案。示例:输入:[4,2,5,7]输出:[4,5,2,7]...原创 2018-12-22 15:58:30 · 220 阅读 · 0 评论 -
左耳听风 第六周
左耳听风 第六周每周完成一个ARTS: 每周至少做一个 leetcode 的算法题、阅读并点评至少一篇英文技术文章、学习至少一个技术技巧、分享一篇有观点和思考的技术文章。(也就是 Algorithm、Review、Tip、Share 简称ARTS)Algorithm先总结 : 这周按照学习路线 , 做了一些与 『 栈 』相关的题目。LeetCode 682. Baseball Game...原创 2018-12-16 16:56:21 · 670 阅读 · 0 评论