- 博客(31)
- 收藏
- 关注
原创 023-191-Number of bits 无符号整数中位为1的数目
191. Number of 1 BitsQuestionWrite a function that takes an unsigned integer and returns the number of ’1’ bits it has (also known as the Hamming weight).For example, the 32-bit integer ’11’ h...
2018-03-05 10:06:06
359
原创 020-142-Linked List Cycle II 判断链表是否有环并返回环的起点
ProblemGiven a linked list, return the node where the cycle begins. If there is no cycle, return null.Note: Do not modify the linked list.Follow up: Can you solve it without using extra space?...
2018-01-13 23:02:57
379
原创 019-141-Linked List Cycle 判断链表是否有环
ProblemGiven a linked list, determine if it has a cycle in it.Follow up: Can you solve it without using extra space?Solution解决方法:龟兔赛跑。快慢指针。/** * Definition for singly-linked list. * s
2018-01-13 23:01:41
302
原创 017-101-Symmetric Tree 判断树是否对称
QuestionGiven a binary tree, check whether it is a mirror of itself (ie, symmetric around its center)
2017-11-26 13:18:44
240
原创 java中的强制类型转换 int转为byte
java中的基本类型的强制转换都是非常粗暴的,对于浮点型转为整型,都进行非常粗暴的截尾,对于多位数转换为少位数,也只是截断,根本不做舍入和约算。
2017-04-19 13:08:41
45851
3
原创 004-107-Binary Tree Level Order Traversal II 层序遍历二叉树之二
ArrayList内部是基于数组实现,往ArrayList头部插入一个元素意味着移动整个数组,一次插入操作需要O(n)时间。那就用LinkedList,它是基于链表的实现,往链表的头部插入一个节点只需O(1)时间
2017-04-10 22:05:49
295
原创 003-102-Binary Tree Level Order Traversal 层序遍历二叉树
树的层序遍历很简单,树可以看成图的退化,对树的广度优先遍历就是层序遍历,我们用一个队列就可以完成。
2017-04-09 13:36:01
419
原创 002-246-LRU Cache 最近最久未使用算法
当进程发生缺页,需要从SWAP(交换区)中换入所需的页到内存块中,此时内存却已满,需要将一个页面换出到SWAP中,选择这个换出页面的算法就是页面置换算法。LRU(Least Recently Used)置换算法是选择最近最久未被使用的页面予以淘汰。使用HashMap和双向链表来实现,简洁且高效。
2017-04-07 23:16:09
524
原创 BST:有序数组构建成二叉搜索树
有序数组构建成二叉搜索树,使用x=change(x)模式降序储存和顺序储存都会得到退化树。最有效保持树平衡的是,取数组中值(对于无重复元素的有序数组,中值就是数组中间元素)作为树根的值,将数组分为左右两个子数组,左子数组的数值均小于根节点,右子数组的值均大于根节点。将左子数组的中间元素作为根节点的左子树,将右子树的中间元素作为根节点的右子树,由此,形成递归关系,就能得到平衡的二叉搜索树。
2016-08-14 22:26:16
5292
1
原创 《算法》第四版《Algorithms》4th Edition 学习环境搭建
Robert Sedgewick《算法》第四版《Algorithms》4th Edition 学习环境搭建
2016-05-16 23:46:38
12689
3
原创 ubuntu搭建java开发环境
材料:jdk+eclipse一,下载jdk: http://www.oracle.com/technetwork/java/javase/downloads/index.htmleclipse: http://www.eclipse.org/downloads/下载下来的包:eclipse-java-mars-2-linux-gtk-x86_64.tar.gzjdk-8
2016-04-18 15:01:27
446
原创 (problem)SyntaxError: Non-ASCII character '\xe7' in file,but no encoding declared;
遇到的问题: 在编写python脚本的时候,添加了中文注释,编译显示错误:SyntaxError: Non-ASCII character '\xe7' in file ./select.py on line 8, but no encoding declared; see http://www.python.org/peps/pep-0263.html for det
2016-03-18 20:21:12
3648
转载 atexit函数和exit函数的理解
本文转载自:http://blog.chinaunix.net/uid-20937170-id-3447901.html按照ISO C的规定,一个进程可以登记多达32个函数,这些函数将由exit自动调用,通常这32个函数被称为终止处理程序,并调用atexit函数来登记这些函数。我们通常认为C语言的起始函数是main函数,实质上一个程序的启动函数并不一定是main函数,这个可以采用链
2016-03-02 16:07:48
468
原创 C函数指针应用之转移表(jump tables)
函数指针是指向函数的指针变量。 因而“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。如前所述,C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上是大体一致的。函数指针有两个用途:调用函数和做函数
2016-02-21 15:21:23
2543
原创 (学习笔记)gcc编译带pthread.h头文件的源码时需要的参数
今天敲了一个小程序,编译时出现错误:undefined reference pthread_create原来由于pthread库不是Linux系统默认的库,连接时需要使用库libpthread.a,所以在使用pthread_create创建线程时,在编译中要加-lpthread参数:gcc -o test -lpthread test.c再查发现编译时参数写成 -pthread 也是可以的。
2016-02-05 17:44:13
10876
原创 配置vim,打造自己的C IDE(二)
给自己的vim添加了几个新的插件:syntastic,a.vim,autoparis,minibufexpl
2016-01-31 12:22:12
571
原创 配置vim,打造自己的C IDE
在网上看到大神们玩Vim,顿时产生兴趣,想要模仿一下,转至linux下学习C编程.本文简单讲一下我配置vim的过程,还有很多优秀的插件待发掘配置.不足之处还望指正
2016-01-29 22:29:05
28515
6
转载 环境变量 $PATH
$PATH:决定了shell将到哪些目录中寻找命令或程序,PATH的值是一系列目录,当您运行一个程序时,Linux在这些目录下进行搜寻编译链接。 编辑你的 PATH 声明,其格式为: PATH=$PATH::::------: 你可以自己加上指定的路径,中间用冒号隔开。环境变量更改后,在用户下次登陆时生效,如果想立刻生效,则可执行下面的语句:$source .bash_profi
2015-12-16 18:41:21
572
原创 (学习笔记)栈数据结构中压(入)栈操作(C语言实现)
在用C语言实现栈结构,实现压栈、进栈操作的时候,会碰到栈满的情况,此时需要增加栈的大小,在C语言的代码中将要用到realloc();这个函数,发现对这个函数认识模糊,查了各种资料,发现网上网友总结的内容都非常模糊,于是翻了一翻《the C programming language》,在其附录中对realloc函数是这样描述的: “void *realloc(void *p,size_t si
2015-11-04 22:40:52
4531
原创 (学习笔记)单片机外部中断的两种模式
51单片机的外部中断有两种模式:电平触发模式和跳变沿触发模式 第一,选择电平触发时,单片机在每个机器周期检查中断源口线,检测到低电平,即置位中断请求标志,向CPU请求中断。第二,选择边沿触发方式时,单片机在上一个机器周期检测到中断源口线为高电平,下一个机器周期检测到低电平,即置位中断标志,请求中断。 区别: 电平触发模式时,中断标志寄存器不锁
2015-08-17 10:32:14
2564
原创 (学习笔记)51单片机的中断功能及其相关的寄存器
51单片机中断系统 引起CPU中断的根源,称为中断源,中断源向CPU提出中断请求,CPU暂时中断原来的事务A,转去处理事件B,对时间B处理完毕后,再回来原来的地方(断点),称为中断返回。实现上述中断功能的部件称为中断系统(中断机构)。中断优先级决定了中断是否能够实现嵌套,52单片机一共有六个中断源中断源序号(C默认中断级别INT0
2015-08-14 15:00:08
12129
原创 51单片机电源管理寄存器PCON以及单片机的空闲、掉电和正常工作模式
①PCON 电源管理寄存器在特殊功能寄存器(SFR)中,字节地址为87H,不能位寻址。PCON用来管理单片机的电源部分,包括上电复位检测、掉电模式等。单片机复位时PCON全部被清0。位序号D7D6D5D4D3D2D1D0位符号SMODSMOD0LVDFP0FGF1GF0PDIDL
2015-07-31 15:46:06
11633
1
转载 KEIL C51 和 ANSI C 的区别
不同系列的嵌入式系统的C编译器,根据它所对应的不同芯片系列有其各自的特点,在这里,以KEIL公司的针对51系列的KEILC51编译器为例,简要说明它与ANSI-C的主要区别,其它的编译系统与ANSI-C的差别,可具体参照指定编译系统手册,找出它们的不同之处。清楚嵌入式系统的C编译器与标准 ANSI-C的区别是用C编译器系统进行嵌入式系统开发的前提条件。 不同的嵌入式C编译系 统之所以与ANSI
2015-07-30 20:08:57
3903
转载 单片机基础:keil中data,idata,xdata,pdata,code区别
从数据存储类型来说,8051系列有片内、片外程序存储器,片内、片外数据存储器,片内程序存储器还分直接寻址区和间接寻址类型,分别对应code、data、xdata、idata以及根据51系列特点而设定的pdata类型,使用不同的存储器,将使程序执行效率不同,在编写C51程序时,最好指定变量的存储类型,这样将有利于提高程序执行效率(此问题将在后面专门讲述)。与ANSI-C稍有不同,它只分SAMLL、C
2015-07-30 03:07:11
1729
原创 C语言中变量的存储类型
一、变量的存储类型变量的存储类型(storage class)是指储存变量值的内存类型。有三个地方可以用于储存变量:普通内存、运行时堆栈、硬件寄存器用于声明变量存储类型的关键字:auto static register ①缺省存储类型在所有代码块之外的变量的缺省存储类型是静态的(static),存储于静态内存中,称为静态(static)变量。静态变量在程序运行前创建,在程序的整
2015-07-27 10:22:00
1355
转载 linux下的软件管理器之DPKG
一、简介dpkg管是Debian软件包理器的基础。dpkg与RPM十分相似,同样被用于安装、卸载和供给.deb软件包相关的信息。在dpkg管理机制上开发出apt的在线升级机制Advanced Package Tool,又名apt-get,是一款适用于Unix和Linux系统的应用程序管理器。最初于1998年发布,用于检索应用程序并将其加载到Debian Linux系统。Apt-get成
2015-07-26 00:19:45
493
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人