自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 初识Lock体系

1.Lock体系目录1.Lock体系1.1Lock简介1.1.2 Lock 接口API1.1.3初始AQS1.1.4AQS的模板方法设计模式AQS可重写的方法如下图(protected方法)在实现同步组件时AQS提供的模板方法如下图:(底层实际操作)1.1Lock简介Lock:锁是用来控制多个线程访问共享资源的方式,一般来说能够防止多个线程访问共享资源...

2018-11-28 23:31:05 586

原创 哈希表—【一致性哈希】

目录一致性哈希1、概念性质2、理解映射方式虚拟节点3、查阅内容一致性哈希1、概念性质一致性哈希也是哈希的一种,现在在解决动态变化的Cache(服务器)环境中普通哈希运用存在的问题,但现在一致性hash算法在分布式系统中也得到了广泛应用,一致性哈希算法应该满足的如下个适应条件。1.平衡性(Balance)平衡性是指哈希的结果能够尽可能分布到所有的缓冲中去,...

2018-09-11 21:38:53 534

原创 【Leetcode66 -加一 Plus One】 (C语言)

目录加一Plus One测试单元题目分析(1)思路清晰版(2)灵机一动版本大功告成加一Plus One给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入...

2018-09-05 20:40:22 1934 2

原创 【Leetcode349 -两个数的交集 Interesection of Two Arrays】(C语言)

 目录 两个数的交集测试单元题目分析(1)简单思路版(2)整理版(3)优化版本大功告成两个数的交集给定两个数组,编写一个函数来计算它们的交集。示例1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2]示例2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:...

2018-09-02 21:43:21 618

原创 【Leetcode283 -移动零 Move Zeroes 】(c语言版)

目录 移动零测试单元题目分析大功告成移动零给定一个数组  nums,一个关系编写函数将所有  0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入:[0,1,0,3,12][1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。 尽量减少操作次数。测试单元直接用题目中给出的测试用例int main()...

2018-08-28 22:30:21 649

原创 【Leetcode 217-存在重复元素 Contains Duplicate】(c语言版)

目录 存在重复元素测试单元题目分析代码表示     大功告成存在重复元素给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回真。如果数组中每个元素都不相同,则返回错误。示例1:输入: [1,2,3,1]输出: true//1示例2:输入: [1,2,3,4]输出: false//0示例3:输入: [1...

2018-08-28 21:01:53 1386

原创 数据结构-堆的创建,销毁,插入,删除

堆堆在物理意义上是一个数组。堆在逻辑意义上是一个完全二叉树大堆:父> =子小堆:父<=子1.头文件声明堆的一些基本函数(接口),你别忘了测试单元!#define _CRT_SECURE_NO_WARNINGS 1#pragma once#include <assert.h>#include <stdlib.h>#incl...

2018-08-23 00:54:52 996

原创 Linux-第一次练习

目录 2.进入目录需要哪些权限,在目录中执行增废查(CD,触摸,LS,RM,MV等)改文件动作,需要哪些权限。3.查找资料,了解以下Linux下的重要目录/ bin,/ tmp,/ proc,/ sys,/ SElinux,/ var,/ usr / lib,/ usr / local         4.查找资料,了解以下重要命令.du,df,top,free,pstack,su...

2018-08-14 12:16:58 364

原创 Linux -第一次练习

Linux - 第一次练习 2.进入目录需要哪些权限,在目录中执行增废查(cd,touch,ls,rm,mv等)改文件动作,需要哪些权限。3.查找资料,了解以下Linux下的重要目录/ bin,/ tmp,/ proc,/ sys,/ SElinux,/ var,/ usr / lib,/ usr / local4.查找资料,了解以下重要命令。du,df,top,free,psta...

2018-08-12 22:29:32 309

原创 【Leetcode189-旋转数组Rotate Array】(C语言)

目录 旋转字符串测试单元题目分析:1.创建临时数组(1)2.创建临时数组(2)3.嵌套函数旋转字符串给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。示例 1:输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步:...

2018-08-09 22:04:52 1684 2

原创 【Leetcode136-只出现一次的数字 Single Number】(c语言)

 目录 只出现一次的数字测试单元题目分析优化版只出现一次的数字给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。你可以不使用额外空间来实现吗?示例1:输入: [2,2,1]输出: 1示例2:输入: [4,1,2,1,2]输出: 4测...

2018-08-08 11:16:12 2166 2

原创 【Leetcode122 -买股票的最佳时机 II Best Time to Buy and Sell Stock II】(C语言)

目录​​​​​​​买股票的最佳时机II测试单元题目分析标准版巧妙版(简称投机取巧版) 买股票的最佳时机II 给定一个数组,它的第i个元素是一支给定股票第i天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例1:输入:[7,1,5...

2018-08-07 19:26:42 1103

原创 鸟哥的Linux私房菜 读书笔记 第4章

Linux的开机管理程序 grub 。(务必安装到MBR当中去,或者利用spfdisk这个国人写的开机管理程序,在安装liux前将grub安装到启动扇区(boot sector),然后再重新进去windows后,以spfdisk来设定正确的开机选单即可。 swap  内存置换空间的功能:当有数据被存放在物理内存里面。但是这些数据又不经常被cpu所取用时。那些这些不常用的程序将会被丢到硬盘的...

2018-08-07 17:49:11 294

原创 【Leetcode26 -删除排序数组中的重复项Remove Duplicates from Sorted Array】(c语言)

目录 删除排序数组中的重复项测试单元题目分析:(双指针法)删除排序数组中的重复项给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。使用不要额外的数组空间,必须你在原地修改输入侧数组并在使用O(1)额外空间的条件下完成。示例1:给定数组 nums = [1,1,2], 函数应该返回新的长度 2, 并且原数组 ...

2018-08-06 17:57:06 602

原创 【Leetcode7-反转整数 Reverse Integer】(C语言)

目录反转整数:测试单元(1)递归版(2)优化版1(3)优化版2(4)复杂度分析反转整数:给定一个32位有符号整数,将整数中的数字进行反转。示例1:输入: 123输出: 321 示例2:输入: -123输出: -321示例3:输入: 120输出: 21注意:假设我们的环境只能存储32位有符号整数,其数值范围是[-231...

2018-08-06 12:55:00 2638 1

原创 鸟叔的Linux私房菜 读书笔记 第三章

目录 鸟叔的Linux私房菜 读书笔记 第三章 主规划与磁盘分区磁盘分区:1.主要的启动记录区(MBR):可以安装开机管理程序的地方,446bytes。2.分区表(partitio table):记录整个磁盘的分割状态,64bytes。3.磁盘分割的必要性:计算机的开机流程与主要启动区(MBR)1.多重引导功能:补充鸟叔的Linux私房菜 读书笔记 第三章 ...

2018-08-04 12:01:36 731

原创 【Leetcode1-两数之和 Two Sun】(C语言)

目录 两数之和测试单元函数解析完整代码复杂度分析两数之和给定一个整数数组和一个目标值,数组找出状语从句:中目标值为的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]...

2018-08-01 22:08:22 1869

原创 鸟叔的Linux私房菜 读书笔记 第一章

目录 第一章 计算机概论知识点总结硬盘感悟与发现第一章 计算机概论 知识点总结 计算机的定义为:接受使用者输入指令与资料,经由中央处理器的数学与逻辑单元运算处理后,以产生或储存成有用的资讯; 电脑的五大单元包括:输入单元、输出单元、控制单元、算数逻辑单元、记忆单元五大部分。其中CPU占有控制、算术逻辑单元,记忆单元又包含主记忆体与辅助记忆体; ...

2018-08-01 17:44:42 643

原创 数据结构(c语言版严蔚敏_吴伟民)读书笔记 第一章

目录 数据结构第一章 绪论数据元素之间存在的关系称为结构算法1.算法应具有的特性2.设计算法的要求3.算法效率度量(时间复杂度)T(n) = O(f(n))4.算法的储存空间的需求(空间复杂度)S(n)=O(f(n)) 数据结构第一章 绪论 数据元素之间存在的关系称为结构 1.集合:结构中的数据元素除了“属于同一个集合”外别无其他关系2.线性结...

2018-08-01 13:02:12 2805

原创 做错的题目

1.小端机器的数据高位字节放在高地址,低位字节放在低地址。x86结构为小端模式。pshort占用2个字节,在内存中的16进制为0x01 0x02,对应的16进制数为0x0201。pshort + 2指向array数组的下标为4的元素,占用2个字节,在内存中的16进制为0x05 0x06,对应的16进制数为0x0605。 pint64的int64类型不确定,但根据名字可以看出...

2018-07-29 22:57:54 373

原创 动态内存管理(动态内存管理函数) malloc calloc realloc

目录 动态内存管理动态内存函数malloc  free  (成对出现)1.malloc——动态内存开辟函数——开辟后未初始化,内存中存放的是随机值。2.free——动态内存回收释放函数calloc 函数 free(成对出现)使用需要注意的事项与malloc都相同。常见的动态内存错误经典笔试题柔性数组1.柔性数组的特点2.柔性数组的优点 动态内存管理...

2018-07-29 22:53:25 409

原创 运算符简记(老是记不住)

运算符优先级小结~(便于记忆)

2018-07-29 22:48:05 305

原创 结构体,联合体,枚举笔记

目录 结构体:结构体的基础匿名结构体声明结构体的成员访问访问成员方法:1.使用结构体变量名+ . +结构体成员变量名来访问         2.通过使用结构体指针的形式来访问成员结构体的自引用结构体的定义和初始化结构体内存对齐      1.计算结构体内存大小(结构体内存对齐)结构体的内存对齐规则内存对齐规则的存在原因        总结...

2018-07-29 22:38:47 419

原创 遇到的题目总结

VC6.0环境下,缺省为4字节对齐,cpu(32位小端字节序)1.以下叙述中不正确的是(D)      A)在不同的函数中可以使用相同变量的名字B)函数中的形式参数是在栈中保存C)在一个函数内定义的变量只在本函数范围内有效D)在一个函数内复合语句中定义的变量在本函数范围内有效(复合语句是指函数中的成对括号构成的代码)分析:A:在不同函数中创建的相同变量都是局部变量,局部变量的生存周期是在一个花括号...

2018-06-11 17:43:18 535

原创 函数指针、函数指针数组、指向函数指针数组的指针

目录一、函数指针(本质是指针)1.( * ( void( * )( ) )0)( ) ;2.void( * signal ( int,void( * )( int ) ) )( int )二、函数指针数组 (本质是数组)三、指向函数指针数组的指针(本质上是一个指针)4.回调函数建议在看函数指针前,了解一下数组指针,指针数数组的解析,假如本来就了解的化就可跳过。点击打...

2018-06-09 18:38:01 740

原创 数组传参,指针作为参数

目录 一、数组传参1.一维数组作为参数(形参)2.二维数组二、指针传参1.一级指针传参(形参)三、指针数组,数组指针传参1.指针数组传参2.数组指针传参总结:一、数组传参1.一维数组作为参数(形参)一维数组作为参数(形参)传参时——>可用一维数组来接收(实参)void test(int[10]){ ;}int main(){...

2018-06-09 17:01:28 8361

原创 数组指针,指针数组

数组指针  :  int(*p1)[n]   (本质是指针)int(*p1)[n]:  [] 的优先级本身高于 * 的优先级,()优先级高于*,高于[]。所以先执行()里的内容,变量p1首先和*结合,所以p1是一个指针,然后指针指向一个整型一维数组,这个数组的长度是n.(也可以说这个长度是p1的长度,执行p+1时,p要跨过n个整型数据的长度->sizeof(数据类型int)*n)。既然说p1...

2018-06-09 15:42:31 410

原创 const 修饰的一级指针和二级指针

一、const修饰的一级指针(关于指针的简要介绍在这里,建议在阅读本篇博客前浏览一下点击打开链接)       const int * p   int const * p          int * const p 被const修饰的符号,我们称为常变量(具有常量的属性),c++中就是常量。例如:const int a = 10;我们定义了一个常变量整形a,整形a具有那些特征呢?你只能使用a给别...

2018-05-12 17:22:54 3959 5

原创 指针的初步了解

首先我们大概了解一下内存:1.内存中每一个内存单元(字节)对应一个地址,一个地址的大小是4个字节。2.在32位平台上指针的大小是4个字节。64位平台上指针的大小是8个字节。3.指针可以理解为一个变量用来专门存放地址。eg1:改变指针p存储的地址进而改变*怕(指针p指向地址中的数据)#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#...

2018-05-12 15:31:55 438

原创 对字符串左旋理解

目录 字符串左旋题目解析普通版拓展思维优化版细节问题的处理:字符串左旋1.实现一个函数,可以左旋字符串中的n个字符。ABCD左旋一个字符得到BCDAABCD左旋两个字符得到CDAB以此类推题目解析首先来对这个问题进行分析:字符串ABCD左旋一次得到BCDA,本质上是字符串中字符顺序的改变。我们可以尝试用最基本的交换字符串中字符来实现一下。设计...

2018-05-05 17:48:10 519

空空如也

空空如也

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

TA关注的人

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