![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
C语言题总
C语言题的总和
失落的换海迷风
关注我了解最近咨询
展开
-
【Linux】动态库和静态库
1.命令 ldd:查看当前程序依赖的动态库文件C动态库:lib.so.6 => /usr/lib64.so.6 file:可以查看当前文件属性 2.动态库 生成gcc/g++ -shared -fPIC test.c -o(后面生成的动态库的名字)前缀:lib后缀:.solibabab.so => abab称之为动态库的名字编译可执行程序的时候,一定要告诉编译器,我们链接的动态库是哪个!gcc main.c -o main指定链接动态库所在的路径:-原创 2020-11-04 21:27:53 · 185 阅读 · 1 评论 -
【Linux】进程等待
1.进程等待的必要性子进程退出,父进程不管不顾,就会造成僵尸进程,进而造成内存泄漏进程一旦变成僵尸状态,kill-9也无法杀死父进程通过等待的方式,回收子进程资源,获取子进程的退出信息 2.进程等待的方法wait方法int wait(int *status)是一个阻塞接口,处理退出的子进程,则会一直等待,直到有子进程退出才会返回返回值:成功则返回处理的退出子进程的pid;失败则返回-1 阻塞:为了完成一个功能,发起一个调用,若不具备完成功能的条件,则调用一直等原创 2020-10-10 17:05:55 · 128 阅读 · 0 评论 -
【力扣】[剑指 Offer 39.] 数组中出现次数超过一半的数字
1.题目数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。你可以假设数组是非空的,并且给定的数组总是存在多数元素。链接:https://leetcode-cn.com/problems/shu-zu-zhong-chu-xian-ci-shu-chao-guo-yi-ban-de-shu-zi-lcof/代码展示int majorityElement(int* nums, int numsSize){ // 根据题意说找到大于数组长度一般的数字并返回 // 这里采用原创 2020-10-08 19:48:03 · 142 阅读 · 0 评论 -
【力扣】[剑指 Offer 31.] 栈的压入、弹出序列
一.题目输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列{1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2}就不可能是该压栈序列的弹出序列。链接:https://leetcode-cn.com/problems/zhan-de-ya-ru-dan-chu-xu-lie-lcof/二.代码展示bool validateStackSequenc原创 2020-09-18 13:31:27 · 181 阅读 · 0 评论 -
【力扣】[剑指 Offer 28. ]对称的二叉树
一.题目请实现一个函数,用来判断一棵二叉树是不是对称的。如果一棵二叉树和它的镜像一样,那么它是对称的。链接:https://leetcode-cn.com/problems/dui-cheng-de-er-cha-shu-lcof/二.代码展示/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeN原创 2020-09-16 20:29:28 · 62 阅读 · 0 评论 -
【力扣】[剑指 Offer 27.] 二叉树的镜像
一.题目请完成一个函数,输入一个二叉树,该函数输出它的镜像。链接:https://leetcode-cn.com/problems/er-cha-shu-de-jing-xiang-lcof/二.代码展示/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; *原创 2020-09-16 09:01:59 · 118 阅读 · 0 评论 -
【力扣】[剑指 Offer 26.] 树的子结构
一.题目输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构)B是A的子结构, 即 A中有出现和B相同的结构和节点值。链接:https://leetcode-cn.com/problems/shu-de-zi-jie-gou-lcof/二.代码展示/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; *原创 2020-09-09 17:33:58 · 101 阅读 · 0 评论 -
【力扣】[剑指 Offer 25.] 合并两个排序的链表
一.题目输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。链接:https://leetcode-cn.com/problems/he-bing-liang-ge-pai-xu-de-lian-biao-lcof/二.代码展示/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */stru原创 2020-09-09 16:48:28 · 73 阅读 · 0 评论 -
【力扣】[剑指 Offer 24.] 反转链表
一.题目定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。链接:https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof/二.代码展示/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */struct ListNode* rever原创 2020-09-06 10:44:00 · 71 阅读 · 0 评论 -
【力扣】[剑指 Offer 21.] 调整数组顺序使奇数位于偶数前面
一.题目输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分。链接:https://leetcode-cn.com/problems/diao-zheng-shu-zu-shun-xu-shi-qi-shu-wei-yu-ou-shu-qian-mian-lcof/二.代码展示/** * Note: The returned array must be malloced, assume caller calls free(). *原创 2020-08-30 18:50:23 · 108 阅读 · 0 评论 -
【力扣】[剑指 Offer 20.] 表示数值的字符串
一.题目请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100"、“5e2”、"-123"、“3.1416”、"-1E-16"、“0123"都表示数值,但"12e”、“1a3.14”、“1.2.3”、"±5"及"12e+5.4"都不是。链接:https://leetcode-cn.com/problems/biao-shi-shu-zhi-de-zi-fu-chuan-lcof/二.代码展示// 处理连续的数字bool scanUnsignedInt(char** ps原创 2020-08-29 15:53:21 · 91 阅读 · 0 评论 -
【力扣】[剑指 Offer 19.] 正则表达式匹配
一.题目请实现一个函数用来匹配包含’.‘和’‘的正则表达式。模式中的字符’.‘表示任意一个字符,而’'表示它前面的字符可以出现任意次(含0次)。在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"abaca"匹配,但与"aa.a"和"ab*a"均不匹配。链接:https://leetcode-cn.com/problems/zheng-ze-biao-da-shi-pi-pei-lcof/二.代码展示bool isMatchCore(char* s, ch原创 2020-08-21 10:39:55 · 99 阅读 · 0 评论 -
【力扣】[剑指 Offer 18.] 删除链表的节点
一.题目给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。链接:https://leetcode-cn.com/problems/shan-chu-lian-biao-de-jie-dian-lcof/二.代码展示/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */原创 2020-08-19 08:51:50 · 65 阅读 · 0 评论 -
【力扣】[剑指 Offer 16.] 数值的整数次方
一.题目实现函数double Power(double base, intexponent),求base的exponent次方。不得使用库函数,同时不需要考虑大数问题。链接:https://leetcode-cn.com/problems/shu-zhi-de-zheng-shu-ci-fang-lcof/二.代码展示double myPow(double x, int n){ // 任何数的0次幂都是1 if(n == 0) return 1; //原创 2020-08-18 08:28:40 · 100 阅读 · 2 评论 -
【力扣】[剑指 Offer 14- II.] 剪绳子 II
一.题目给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]…k[m - 1] 。请问 k[0]k[1]…*k[m - 1] 可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。https://leetcode-cn.com/problems/ji原创 2020-08-17 08:08:22 · 72 阅读 · 0 评论 -
【力扣】[剑指 Offer 14- I.] 剪绳子
一.题目给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1]…k[m-1] 。请问 k[0]k[1]…*k[m-1]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。链接:https://leetcode-cn.com/problems/jian-sheng-zi-lcof/二.代码展示方法一int cuttingRope(int n)原创 2020-08-16 09:01:11 · 89 阅读 · 0 评论 -
【力扣】[剑指 Offer 13. ]机器人的运动范围
一.题目地上有一个m行n列的方格,从坐标 [0,0] 到坐标 [m-1,n-1] 。一个机器人从坐标 [0, 0]的格子开始移动,它每次可以向左、右、上、下移动一格(不能移动到方格外),也不能进入行坐标和列坐标的数位之和大于k的格子。例如,当k为18时,机器人能够进入方格[35, 37] ,因为3+5+3+7=18。但它不能进入方格 [35, 38],因为3+5+3+8=19。请问该机器人能够到达多少个格子?链接:https://leetcode-cn.com/problems/ji-qi-re原创 2020-08-15 09:28:47 · 177 阅读 · 0 评论 -
【力扣】[剑指 Offer 12.] 矩阵中的路径
一.题目请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。例如,在下面的3×4的矩阵中包含一条字符串“bfce”的路径(路径中的字母用加粗标出)。[[“a”,“b”,“c”,“e”], [“s”,“f”,“c”,“s”], [“a”,“d”,“e”,“e”]]但矩阵中不包含字符串“abfb”的路径,因为字符串的第一个字符b占据了矩阵中的第原创 2020-08-14 20:51:47 · 198 阅读 · 0 评论 -
【力扣】[剑指 Offer 10- II.] 青蛙跳台阶问题
一.题目一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。链接:https://leetcode-cn.com/problems/qing-wa-tiao-tai-jie-wen-ti-lcof/二.代码展示int numWays(int n){ if(n < 2) return 1; int a = 1原创 2020-08-12 08:27:05 · 89 阅读 · 0 评论 -
【力扣】[剑指 Offer 09.] 用两个栈实现队列
一.题目用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 )链接:https://leetcode-cn.com/problems/yong-liang-ge-zhan-shi-xian-dui-lie-lcof/二.代码展示typedef struct { // 两个栈,长度,top, int len;原创 2020-08-11 08:53:20 · 153 阅读 · 0 评论 -
【力扣】[剑指 Offer 07.] 重建二叉树
一.题目输入某二叉树的前序遍历和中序遍历的结果,请重建该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。链接:https://leetcode-cn.com/problems/zhong-jian-er-cha-shu-lcof/二. 代码展示/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struc原创 2020-08-10 09:05:05 · 174 阅读 · 0 评论 -
【力扣】[剑指 Offer 06. ]从尾到头打印链表
一.题目输入一个链表的头节点,从尾到头反过来返回每个节点的值(用数组返回)。链接:https://leetcode-cn.com/problems/cong-wei-dao-tou-da-yin-lian-biao-lcof/二.代码展示/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; *//** * Not原创 2020-08-09 11:17:20 · 83 阅读 · 0 评论 -
【力扣】LeetCode34. 在排序数组中查找元素的第一个和最后一个位置
给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。/** * Note: The returned array must be malloced, assume caller calls free(). */int* se...原创 2020-04-21 21:43:43 · 143 阅读 · 0 评论 -
字符串转换整数
请你来实现一个 atoi 函数,使其能将字符串转换成整数。首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。接下来的转化规则如下:如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一个整数。该字符串在有效的整数部分之后也可能会存在多余的...原创 2020-04-20 14:26:18 · 79 阅读 · 0 评论 -
压缩字符串
给定一组字符,使用原地算法将其压缩。压缩后的长度必须始终小于或等于原数组长度。数组的每个元素应该是长度为1 的字符(不是 int 整数类型)。在完成原地修改输入数组后,返回数组的新长度。int compress(char* chars, int charsSize){ //用来找不是相同字母 int start = 0; //用来标记第一次出现的字母 int end = 0;...原创 2020-04-16 15:05:30 · 152 阅读 · 0 评论 -
最短无序连续子数组
给定一个整数数组,你需要寻找一个连续的子数组, //如果对这个子数组进行升序排序,那么整个数组都会变为升序排序。 //你找到的子数组应是最短的,请输出它的长度。int cmp(const void* a,const void* b){ return *(int*)a - *(int*)b;}int findUnsortedSubarray(int* nums, int num...原创 2020-04-15 09:11:20 · 92 阅读 · 0 评论 -
验证回文串
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串bool isPalindrome(char * s){ int len =strlen(s); //若字符串中没有字符,那一定是回文串 if(len == 0) return true; int i = 0; ...原创 2020-04-14 16:32:55 · 72 阅读 · 0 评论 -
二级制求和
给你两个二进制字符串,返回它们的和(用二进制表示)。输入为 非空 字符串且只包含数字 1 和 0。char * addBinary(char * a, char * b){ //分别算出字符串的长度 int m = strlen(a); int n = strlen(b); //下标访问 int i = m - 1; int j = n -...原创 2020-04-13 20:37:50 · 101 阅读 · 0 评论 -
两数之和
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素/** * Note: The returned array must be malloced, assume caller calls free(). */int* twoSum(in...原创 2020-04-13 09:20:52 · 79 阅读 · 0 评论 -
第三大数
给定一个非空数组,返回此数组中第三大的数。如果不存在,则返回数组中最大的数。要求算法时间复杂度必须是O(n)。int thirdMax(int* nums, int numsSize){ int Max = nums[0]; int Min = nums[0]; for(int i=0; i < numsSize; i++) { if(...原创 2020-04-12 21:59:13 · 250 阅读 · 0 评论 -
加一(给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。 来)
/*** Note: The returned array must be malloced, assume caller calls free().*/int* plusOne(int* digits, int digitsSize, int* returnSize){ //要注意全9 的情况是要进位的 int i = digitsSize - 1; f...原创 2020-03-31 21:59:46 · 441 阅读 · 0 评论 -
给定一个整数类型的数组 nums,请编写一个能够返回数组“中心索引”的方法。 我们是这样定义数组中心索引的:数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和 来源:力扣(LeetCode
intpivotIndex(int*nums,intnumsSize){intsum=0;intnum=0; //先将所有的数字加和起来for(inti=0;i<numsSize;i++){sum+=nums[i];}for(inti=0;i<...原创 2020-03-22 20:37:12 · 1050 阅读 · 1 评论 -
05. 按奇偶排序数组 给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。 你可以返回满足此条件的任何数组作为答案。
//大家写的时候可得注意,她会再给你一个int*sortArrayByParity(int*A,intASize,int*returnSize){的函数,其实没啥用,只是在//你调试的时候会一直抱一个错误,然后你就很难受。/***Note:Thereturnedarraymustbemalloced,assumecallercallsfree(...原创 2020-03-20 21:49:49 · 519 阅读 · 0 评论 -
仅仅反转字母(给定一个字符串 S,返回 “反转后的” 字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转。)
//思路:先把字母全部存放在ch中,之后在进行遍历,把字母反向放回去char * reverseOnlyLetters(char * S){ int i; int j = 0; //求出S的长度 int len = strlen(S); char* ch = (char*)malloc(strlen(S)+1); for(i = 0;i < ...原创 2020-03-11 15:35:22 · 576 阅读 · 0 评论 -
你的朋友正在使用键盘输入他的名字 name。偶尔,在键入字符 c 时,按键可能会被长按,而字符可能被输入 1 次或多次。 你将会检查键盘输入的字符 typed。如果它对应的可能是你的朋友的名字(其中
bool isLongPressedName(char * name, char * typed){while(*name != '\0' && *typed != '\0'){ **//如果*name和*typed的值相等,则同时往后走一步** if(*name == *typed) { *name++; } **//否...原创 2020-03-10 17:02:04 · 388 阅读 · 0 评论 -
最后一个单词的长度(给定一个仅包含大小写字母和空格 ' ' 的字符串 s,返回其最后一个单词的长度。)
//方法:从后往前遍历,遇到空格直接停止,最后返回长度intlengthOfLastWord(char*s){ //求出数组s的长度intlength=strlen(s); //防止数组s没有内容或者最后一个单词之后还有一个空格while(length>0&&s[length-1...原创 2020-03-06 16:40:06 · 994 阅读 · 0 评论 -
合并两个有序数组(给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。)
void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n){ //定义,让数组从后往前遍历 int i = m-1; int j = n-1; int len = m+n-1; //如果nums2为空的话,直接返回nums1 if(n == 0...原创 2020-03-06 16:34:10 · 1390 阅读 · 0 评论 -
回文数( 判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数)
//利用数组求解,将所有的数字均放在一个数组中,然后前后同时//遍历,如果都相等,则返回true,否则返回falsebool isPalindrome(int x){ //先排除所有的负数,直接返回false if(x < 0) return false; //定义保存数字的数组,以及之后遍历的变量 int s[10] = {0}; ...原创 2020-03-04 17:12:36 · 1016 阅读 · 0 评论 -
赎金信(给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串ransom能不能由第二个字符串magazines里面的字符构成。)
//利用ASCLL(97-122)来求解,magazine这个字符串中,把有的字符都++,也就是ASCLL[i]=1;//之后在ransomNote字符串所有的字符全部--;就会出现三种情况ASCLL[i]=1,0,-1//如果是-1的话,那就是magazine没有全部的ransomNote字符,即返回falsebool canConstruct(char * ransomNote, ch...原创 2020-03-04 15:44:54 · 321 阅读 · 0 评论 -
移除元素并返回移除后数组的长度
int removeElement(int* nums, int numsSize, int val){ //利用res开始遍历,最后返回 int res = 0; for (int i = 0; i < numsSize; ++i) { if (nums[i] == val) { } else...原创 2020-03-03 21:02:42 · 287 阅读 · 0 评论