- 博客(53)
- 资源 (19)
- 问答 (1)
- 收藏
- 关注
原创 几种排序(C语言)
/* 1.冒泡排序 */void bubblesort(int ar[], int len)/* 1.1 冒泡排序改进版 */void bubblesort1(int ar[], int len)/* 2.选择排序 */void selectsort(int ar[], int len)/* 3,插入排序 */void insertsort(int ar[], int len)/* 4.希尔排序 */void shellsort(int ar[], int len)/* 5.归并排序 *
2021-04-15 22:36:45 774
原创 C语言之动态数组
通过输入指定数组的长度,并通过输入设置数组中元素的值,可把malloc换成calloc,见注释。#include<stdio.h>#include<string.h>int main(){ int *ar; int num = 0; int i = 0; scanf("%d", &num); ar = (int *)malloc(num * sizeof(int)); memset(ar, 0, num * s...
2021-04-15 22:24:16 178
原创 excel中的列数使用26个字母组合表示
题目:excel中的列数使用26个字母组合表示:a b c ... y z aa ab ac ... az ba bb bc ... by bz ... ... zy zz aaa aab ......1 2 3 ... 25 26 27 28 29 ... 52 53 54 55 ... 77 78 ... ... 701 702 703 704 ......试编写一个算法,输入列数,输出对应的字母组合。例如:输入53,输出ba#i...
2021-02-20 23:37:23 3436
原创 C语言字符串输入的两种方法
1.利用数组2.利用动态分配malloc#include<stdio.h>#include<stdlib.h>#include<string.h>int main(){ char *ptr = "this is point"; char ar[10] = "hello cky"; char *mall = (char *)malloc(10*sizeof(char)); //stdlib memset(mall, 0, 10*sizeof.
2021-02-20 22:43:23 1613
原创 sock_test
#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <stdarg.h>#include <sys/types.h>#include <sys/wait.h>#include <time.h>#include <fcntl.h>#include <arpa/inet.h>#include <sys/.
2020-11-26 23:40:47 174
原创 fork_test
#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <stdarg.h>#include <sys/types.h>#include <sys/wait.h>#include <time.h> #define PIDNUM 100 //16K*100int tprintf(const char *fmt,...); in.
2020-11-26 23:13:46 192
原创 slab_test
slab_test#include <linux/module.h>#include <linux/init.h>#include <linux/slab.h>#include <linux/mm.h>#define SLUBNUM 513static struct kmem_cache* slub_test;struct student{ int age; int score; /.
2020-11-23 07:59:21 128
原创 linux命令持续集成ing
1.cd切换工作目录2.ls格式:ls [option]查看当前目录下的文件和目录,它有很多参数可以选,常用的参数如下:[option] -a:显示所有文件和文件夹,包括隐藏文件和当前目录(.)以及上级目录(..) -h:以易于理解的方式显示文件大小,通常和-l组合使用,h是--human-readable的简写 -l:列出文件的详细信息,每行显示一个 -r:排...
2020-01-04 15:11:18 191
原创 C语言中unsigned char* 和 const char*的互相转换
1.unsigned char*转换成const char*先将unsigned char*转换成char*,再将char*转换成const char*unsigned char *pstr;const char* p = (const char*)(char*)pstr;2.const char*转换成unsigned char*const char* p;unsigne...
2019-12-20 23:12:59 17810 3
原创 C和C++中&的差别
C C++ & 取地址 取地址 位运算 位运算 两个&表示与 两个&表示与 - 引用 1.C++比C多了一种新特性,即引用;如下语句,C语言中会报错,C++中不会,因为C++中这里表示引用:void fun2(int &p)C语言中汇报错是因为&p不管是那种用法都不能作为左值;2...
2019-11-15 07:09:51 929
原创 VM Fadora28静态IP配置
1.vim /etc/sysconfig/network-scripts/ifcfg-ens33(VM设置网络链接方式为NAT)TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=staticDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIP...
2019-07-27 18:00:55 308
原创 leetcode 36. 有效的数独
判断一个 9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用 '.' 表示。示例 1:输入:[ ["5","3",".",".","7",".","
2018-05-18 07:05:17 387
原创 leetcode 34. 搜索范围
给定一个按照升序排列的整数数组 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,10], target = 6...
2018-05-16 21:30:17 2171
原创 leetcode 33. 搜索旋转排序数组
假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [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], target = 0...
2018-05-15 23:17:49 499
原创 leetcode 31. 下一个排列
实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1解法一:class Solution {public: void...
2018-05-14 22:42:57 385
原创 leetcode 29. 两数相除
给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。示例 1:输入: dividend = 10, divisor = 3输出: 3示例 2:输入: dividend = 7, divisor = -3输出: -2说明:被除数和除数均为 32 位有符号整数。除数不为...
2018-05-14 21:36:53 3135 1
原创 leetcode 24. 两两交换链表中的节点
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.说明:你的算法只能使用常数的额外空间。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。思路:1.p代表上一对交换完成的节点中的后者。l代表即将进行交换节点对的左节点,r代表即将进行交换节点对的右节点。2.首先将l指向r的下...
2018-05-12 10:19:29 1262
原创 leetcode 22. 括号生成
给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合。例如,给出 n = 3,生成结果为:[ "((()))", "(()())", "(())()", "()(())", "()()()"]此题时卡特兰数的一个应用。抓中重点:只有右括号大于左括号时才能在尾部插入右括号class Solution {public: void fu...
2018-05-11 23:03:24 318
原创 利用 Anaconda 解决 Python2 和 python3 共存问题
anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。因为包含了大量的科学包,Anaconda 的下载文件比较大(约 515 MB),如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含conda和 Python)。直接在官网下载最新版本的https://www.continuum.io/d...
2018-05-11 00:05:55 1252
原创 leetcode 19. 删除链表的倒数第N个节点
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。解法一:需要两趟扫描/** * Definition for singly-linked list. * struct Li...
2018-05-10 23:13:00 361 1
原创 leetcode 18. 四数之和
给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c +d 的值与 target 相等?找出所有满足条件且不重复的四元组。注意:答案中不可以包含重复的四元组。示例:给定数组 nums = [1, 0, -1, 0, -2, 2],和 target = 0。满足要求的四元组集合为:[ [-1...
2018-05-09 21:54:01 1638
原创 leetcode 17. 电话号码的字母组合
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。示例:输入:"23"输出:["ad", "ae", "af", "bd", "be", "bf", "cd", "ce", "cf"].说明:尽管上面的答案是按字典序排列的
2018-05-08 10:47:29 893
原创 leetcode 16. 最接近的三数之和
给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数,使得它们的和与 target 最接近。返回这三个数的和。假定每组输入只存在唯一答案。例如,给定数组 nums = [-1,2,1,-4], 和 target = 1.与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2).本题与上一题leetcode 15.三数之和ht...
2018-05-07 09:22:04 506
原创 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]]注意分析问题,i顺序遍历;j也顺序...
2018-05-06 20:35:42 619
原创 关于‘\0',"\0",‘0’,“0”以及空格之间的区别和字符串输入到字符数组的问题
1. '\0'和 "\0""\0"表示是一个字符串(数组),它包含两个字符,并且都是结束符\0。'\0'表示单一字符,即转义字符。输出的时候,"\0"和空串相当,不输出任何东西,ASCII码为0的字符‘\0’即控制字符Null输出一个空格。对于C,C++原生字符串(包括字符串字面值),其中的第一个"\0",意味着字符串结束,如果串的第一个字符就是‘\0’,那么当作空串输出,"\0"就相当于"&quo
2018-05-05 16:32:02 7229
原创 leetcode 11. 盛最多水的容器
给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) 。画 n 条垂直线,使得垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。注意:你不能倾斜容器,n 至少是2。class Solution {public: int maxArea(vector<int>&...
2018-05-05 11:30:27 265
原创 TCP的三次握手和四次挥手
TCP的三次握手:第一次握手 客户端向服务端发送连接请求报文段。该报文段的头部中SYN=1,ACK=0,seq=x。请求发送后,客户端便进入SYN-SENT状态。PS1:SYN=1,ACK=0表示该报文段为连接请求报文。PS2:x为本次TCP通信的字节流的初始序号。 TCP规定:SYN=1的报文段不能有数据部分,但要消耗掉一个序号。第二次握手 服务端收到连接请求报文段后,如果同意连接,则会发送一个...
2018-05-05 09:40:18 254
原创 leetcode 8. 字符串转整数 (atoi)
实现 atoi,将字符串转为整数。在找到第一个非空字符之前,需要移除掉字符串中的空格字符。如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连续的数字组合起来,这部分字符即为整数的值。如果第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。字符串可以在形成整数的字符后面包括多余的字符,这些字符可以被忽略,它们对于函数没有影响。当字符串中的第一个非空字符序列不是个...
2018-05-04 17:26:13 168
原创 leetcode 6. Z字形变换
将字符串 "PAYPALISHIRING" 以Z字形排列成给定的行数:P A H NA P L S I I GY I R之后从左往右,逐行读取字符:"PAHNAPLSIIGYIR"实现一个将字符串进行指定行数变换的函数:string convert(string s, int numRows);示例 1:输入: s = "PAYPALISHIRING", numRows ...
2018-05-03 22:14:44 252
原创 leetcode 5. 最长回文子串
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。示例 1:输入: "babad"输出: "bab"注意: "aba"也是一个有效答案。示例 2:输入: "cbbd"输出: "bb"解法一:暴力解法,遍历s中的每一个子字符串class Solution {public: string longestPalindrome(string s) {/...
2018-05-02 22:38:56 260
原创 leetcode 3. 无重复字符的最长子串
给定一个字符串,找出不含有重复字符的最长子串的长度。示例:给定 "abcabcbb" ,没有重复字符的最长子串是 "abc" ,那么长度就是3。给定 "bbbbb" ,最长的子串就是 "b" ,长度是1。给定 "pwwkew" ,最长子串是 "wke" ,长度是3。请注意答案必须是一个子串,"pwke" 是 子序列 而不是子串。解法一:思路:每次顺序读取s的一个元素s
2018-04-27 20:58:22 209
原创 leetcode 2. 两数相加
给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。你可以假设除了数字 0 之外,这两个数字都不会以零开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -> 8原因:342 + 465 = 807本题有很多解法,下面是自己想的比较yu的解法,仅供参考...
2018-04-26 16:42:50 167
原创 leetcode 100. 相同的树
给定两个二叉树,编写一个函数来检验它们是否相同。如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。示例 1:输入: 1 1 / \ / \ 2 3 2 3 [1,2,3], [1,2,3]输出: true示例 2:输入: 1 1 ...
2018-04-25 10:44:24 801
原创 leetcode 88. 合并两个有序数组
给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = [2,5,6],...
2018-04-25 10:16:25 5947
原创 leetcode 83. 删除排序链表中的重复元素
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3/** * Definition for singly-linked list. * struct ListNode { * int val; * ...
2018-04-24 16:26:54 302
原创 leetcode 70. 爬楼梯
假设你正在爬楼梯。需要 n 步你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 步 + 1 步2. 2 步示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 步 + 1 步 + 1 步2. 1 步 + 2 步3. ...
2018-04-24 11:08:26 431
原创 leetcode 69. x 的平方根
实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。解法一:class Solution {public: int mySq...
2018-04-24 10:19:58 1569
原创 leetcode 67. 二进制求和
给定两个二进制字符串,返回他们的和(用二进制表示)。输入为非空字符串且只包含数字 1 和 0。示例 1:输入: a = "11", b = "1"输出: "100"示例 2:输入: a = "1010", b = "1011"输出: "10101"解法一:class Solution {public: string addBinary(string a, string b)
2018-04-23 19:55:35 1360
原创 leetcode 66. 加一
给定一个非负整数组成的非空数组,在该数的基础上加一,返回一个新的数组。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321。解法一:class S...
2018-04-22 21:23:28 242
原创 leetcode 58. 最后一个单词的长度
给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0 。说明:一个单词是指由字母组成,但不包含任何空格的字符串。示例:输入: "Hello World"输出: 5解法一:class Solution { public: int lengthOfLastWord(string s) { int len =...
2018-04-21 15:14:43 288
算法导论(原书第3版) 中文完整版 高清扫描版
2018-05-09
深入理解计算机系统 第二版.pdf
2018-05-09
离散数学及其应用(中文第六版)_扫描版
2018-05-09
计算机网络-自顶向下方法(第六版)
2018-05-09
计算机体系结构:量化研究方法(中文第五版)
2018-05-09
编译原理 第二版
2018-05-09
《操作系统精髓与设计原理(原书第6版)》PDF中文版.pdf
2018-05-09
从0开始学习GitHub系列
2018-04-19
常用的连续傅里叶变换对及连续傅里叶变换性质
2018-04-19
各位大神,有字节跳动Linux内核研发工程师的面经吗
2021-02-21
TA创建的收藏夹 TA关注的收藏夹
TA关注的人