3 慵懒de疯子

尚未进行身份认证

我要认证

做真实可爱的自己......

等级
TA的排名 10w+

【剑指offer】面试题之二叉树系列(一)

1、把二叉树打印成多行 题目描述: 从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行 思路: 层序遍历 问题:怎样去确定它的每一层有多少结点按层次输出二叉树访问根节点,并将根节点入队。当队列不空的时候,重复以下操作。1、弹出一个元素。作为当前的根节点。2、如果根节点有左孩子,访问左孩子,并将左孩子入队。...

2018-08-14 19:05:51

str系列库函数的模拟实现

1、模拟实现strlen :字符串求长度 思路:字符串都有结束标志\0,只要遍历这个字符串,知道遇到\0结束,就能轻松的获得字符串的长度了 (1)不创建计数器(递归)int my_strlen1(const char* str){ if ('\0' == *str) return 0; else return 1 + my_strlen1(...

2018-08-14 18:51:54

rotate_list(旋转链表)

题目描述 Given a list, rotate the list to the right by k places, where k is non-negative. 给定一个链表,将链表向右旋转k个位置,其中k是非负的。 For example: Given1->2->3->4->5->NULLand k =2, return4-&g...

2018-08-09 19:04:05

partition-list

题目描述:Given a linked list and a value x, partition it such that all nodes less than x come before nodes greater than or equal to x. You should preserve the original relative order of the nodes in ea...

2018-08-07 10:56:34

链表中倒数第K个结点

题目描述 输入一个链表,输出该链表中倒数第k个结点。思路: 定义两个指针:一个pPre,一个pCur,让pPre先走k-1步(这里用for循环来实现pCur不动。当从第k步开始,让两个指针再同时出发(这样两个指针之间的距离始终就是k-1),当pPre走到尾指针时,pCur 刚好走到倒数第k个结点 ...

2018-08-06 21:30:43

排序之交换排序(快排)

1、冒泡排序:稳定 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的元素列,一次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素已经排序完成。 基本思想: (1)比较相邻的元素。如果第一个比第二个大,就交换他们两个...

2018-08-03 18:06:40

两个链表的公共结点

题目描述: 输入两个链表,找出它们的第一个公共结点 思路: 如上图所示,两个链表从第一个公共结点开始,后面的所有结点都是重合的,并且不可能再出现分叉 思路一:在第一个链表上顺序遍历每个结点,每遍历一个结点,就在第二个链表上顺序遍历每个结点,直到找到第一个公共结点。 时间复杂度为O(mn) 思路二:首...

2018-08-03 16:45:19

排序之选择排序

二、选择排序 1、选择排序(区间在不断地变小 ) 基本思想: 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。 (首先,选出最小的数放在第一位,然后选择第二小的数,放在第二位;以此类推,直到所有的数从小到大排列.那么,对于大小为N的数组需要...

2018-07-23 13:11:52

排序之插入排序

一、什么是排序 1、概念 排序就是将一组杂乱无章的数据按照一定的规律(升序或者降序)组织起来 2、分类 3、各排序之间的时间复杂度&空间复杂度&稳定性 二、插入排序 1、直接插入排序 基本思想: 当插入第i(i>=1)个元素时,前面的array[0],array[1],…,array[i-1]已经排好 序,此时用array[i]的排序...

2018-07-23 09:18:02

shell基础之工具(一)

一、sort sort将文件的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按照ASCII码值进行比较,最后将它们按升序输出(默认情况下都是升序)sort的常见几个选项: (1)sort -r:排序方式改为降序 (2)sort -u:在输出行中去除掉重复行 (3)sort -n:以数值来排序 (4)sort -t:设置间隔符 (5)sor...

2018-07-16 10:58:39

正则表达式

相信大家都知道见过正则表达式,但什么是正则表达式嘞? 正则表达式就是用于描述一组字符串特征的模式,用来匹配特定的字符串。通过 特殊字符+普通字符来进行模式描述,从而达到文本匹配目的工具。 正则表达式目前被集成到了各种文本编辑器/文本处理工具当正则表达式的分类:基本的正则表达式(Basic Regular Expression 又叫 Ba...

2018-07-07 15:56:26

fd与FILE结构体

前言: fopen,fclose,fwrite,fread属于C库当中的函数,为库函数调用。而open,close,write,read这几个函数属于系统提供的借口,称之为系统调用。库函数和系统调用是上下级关系,在库函数中封装了系统调用的函数。(库函数为啥都有的大哥,系统调用就是有一部分的小弟)一、文件描述符fd1、简介 文件描述符就是以0开始的一个小整数(文件描述符无...

2018-06-08 00:03:04

【剑指offer】------将字符串中的空格替换

题目描述:将一行字符串中的空格替换成为%20 eg:hello world 准换成为 hello%20world题目分析: 方案一:可以允许开辟新的空间 遍历旧字符串复制,遇到空格就在新字符串上填入“%20” !!!方案二:不允许开辟新的空间,只能在原来的字符串上操作(原来的空间足够长) 1、从前往后 从前往后替换时,很容易覆盖掉后面的字符2、...

2018-05-26 21:21:58

表的增删改查(CRUD)

1、增加 语法:insert into table_name[(column[,column...])] values (value [,value...]);增加进阶: 更新: 主键插入如果重复:(如果重复做更新,如果不重复做插入) insert into t7 values(1,”易烊千玺”) on duplicate key update name = ...

2018-05-26 18:29:03

多线程------线程的等待与分离

一、线程等待// 函数原型#include <pthread.h>int pthread_join(pthread_t thread, void **retval);// 参数 thread:线程ID retval:它指向一个指针,后者指向线程的返回值//函数功能:等待线程结束//返回值:成功返回0,失败返回错误码 ...

2018-05-15 20:26:35

多线程-------线程的同步与互斥

一、什么是互斥量(mutex) 先来看一段代码:操作共享变量会有问题的售票系统Makefile mypthread.c#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <pthread.h>in...

2018-05-15 11:20:43

数据库中表的常见七大约束

真正约束字段的是数据类型,但是数据类型约束很单一,需要有一些额外的约束,更好的保证数据的合法性,从业 务逻辑角度保证数据的正确性。比如有一个字段是email,要求是唯一的。1、空属性not null:not null 此列属性不允许为空,必须做数据插入create table t1( per_name varchar(20), per_age int no...

2018-05-14 20:15:55

数据库中表的基本操作【面试常考点】

1、创建表// 语法CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎;(1)field 表...

2018-05-06 20:27:18

数据库的备份和恢复

一、创建数据库 1、数据库的创建语法:create database [IF NOT EXISTS] 数据库名; CREATE DATABASE [IF NOT EXISTS] 数据库名 [create_specification [, create_specification] ...]示例:创建一个名为mysweet的数据库 **字符集和校验规则**数...

2018-05-05 22:56:25

多线程------线程的基本概念&创建&终止

一、什么是线程 1、概念 在Linux下进程是承担系统分配资源的基本单位。Linux下的进程称之为轻量级进程。 在一个程序里的一个执行路线就叫做线程。线程就是“一个进程内部的控制序列”(线程是在进程内部运行的)。线程是承担调度的基本单位,一个进程可以有多个线程,它的执行力度比进程更细 注意点: 在Linux中,线程和进程共用一种数据结构...

2018-05-05 10:32:26

查看更多

勋章 我的勋章
    暂无奖章