摘要: 高级特性 切片 如果想取数组中的部分元素,则可以通过在数组中使用 实现,类似于JavaScript中的 ;其中 都可以为负数,表示以倒数的方式来计算,也可以只写一个负数,也可以什么都不写只有一个:,表示复制整个数组。 如果是 ,表明每隔一段来取一个,比如: 也可以这么写,前6个数每2个取1个: 切片 阅读全文
posted @ 2017-04-21 13:59 banananana 阅读(702) 评论(0) 推荐(0) 编辑
摘要: 前言 这篇博客是在学习某个网站时记录下来的,所以其纪录的顺序和那个网站里面一样,有些知识点已经大概了解了就不再赘述。 基础 字符串和编码 在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF 8编码。 在 版本中,字符串是以Unicode来编码的;当你的源代 阅读全文
posted @ 2017-04-19 13:58 banananana 阅读(256) 评论(0) 推荐(0) 编辑
摘要: read/write read:负责从描述符fd中读取内容,当读取成功时,read返回实际所读的字节数(大于0);如果返回的值为0,表示已经读到文件结束了;如果返回的值小于0,则出现错误,如果错误为 ,说明错误是由中断引起的,如果是 表示网络连接出了问题。 write:将buf中的nbytes字节内 阅读全文
posted @ 2017-04-18 23:05 banananana 阅读(3242) 评论(0) 推荐(1) 编辑
摘要: 原生API select 函数参数 numfds:文件描述符的最大值+1(为了限制检测文件描述符的范围) readfds:包含所有因为状态变为可读而触发select函数返回文件描述符 writefds:包含所有因为状态变为可写而触发select函数返回文件描述符 exceptfds:包含所有因为状态 阅读全文
posted @ 2017-04-18 08:15 banananana 阅读(4538) 评论(0) 推荐(1) 编辑
摘要: 1 动态规划 1.1 定义 动态规划的核心是状态和状态转移方程。 在记忆化搜索中,可以为正在处理的表项声明一个引用,简化对它的读写操作; 动态规划解决的是多阶段决策问题; 和分治法最大的区别在于:适合于用动态规划的问题,经过分解以后得到的子问题往往不是相互独立的(即下一个子阶段的求解是建立在上一个子 阅读全文
posted @ 2017-04-14 20:06 banananana 阅读(3425) 评论(0) 推荐(6) 编辑
摘要: 阻塞和非阻塞,同步和异步 1 例子 故事:老王烧开水。 出场人物:老张,水壶两把(普通水壶,简称水壶;会响的水壶,简称响水壶)。 老王想了想,有好几种等待方式 1.老王用水壶煮水,并且 站在那里 , 不管水开没开,每隔一定时间看看水开了没 。- 同步阻塞 老王想了想,这种方法不够聪明。 2.老王还是 阅读全文
posted @ 2017-04-13 00:35 banananana 阅读(33262) 评论(11) 推荐(18) 编辑
摘要: 前言 说来惭愧,大二时候学的计算机网络好多都不太记得了,不过还好有认真学过,捡起来也挺快的,就是对于现在业界中使用的网络算法的不是很懂; 1 TCP报文段结构 1.1 序号和确认号 序号,是报文段首字节的字节流编号; 确认号,是发送端期望从接收端收到的下一个字节的序号; TCP只接受数据流中国至第一 阅读全文
posted @ 2017-04-12 16:35 banananana 阅读(1078) 评论(0) 推荐(1) 编辑
摘要: 前言 转载请注明出处,感谢! C++11 的新特性 1 变量和基本类型 1.1 long long 类型 扩展精度浮点数,10位有效数字 1.2 列表初始化 初始化的几种不同形式,其中用 花括号 来初始化变量称为列表初始化; 比如: 需要注意的是,当用于内置类型的变量时,这种初始化形式有一个重要的特 阅读全文
posted @ 2017-04-09 15:53 banananana 阅读(13056) 评论(2) 推荐(3) 编辑
摘要: 定义 在图论中,由一个 有向无环图 组成的序列,只要满足下面两种情况则称为拓扑排序: 每个顶点只允许访问 一次 ; 若顶点A在图中存在到达顶点B的路径,则不会存在顶点B到顶点A的路径,也就是说这条路径是 单向 的; 可以从这副图中发现,如果按照DFS的思想,那么其访问结点的结果为 5,2,3,1,0 阅读全文
posted @ 2017-04-06 13:42 banananana 阅读(7682) 评论(1) 推荐(0) 编辑
摘要: 前言 初次学习Shell,对于括号的使用肯定很困惑,所以我打算将其整理成一篇文章 单括号 { } 表达变量的值,在不引起歧义的时候可以省略大括号 例子: 新开多条命令来执行,各个命令之间用分号隔开,最后一个命令必须要分号来隔开; ( ) 命令组 新开多条命令来执行,各个命令之间用分号隔开,最后一个命 阅读全文
posted @ 2017-04-05 11:31 banananana 阅读(1178) 评论(0) 推荐(0) 编辑
摘要: 传递参数 设置权限 chmod +x file.sh 传递参数 ./file.sh parameter1 ... 特殊字符 $ 传递到脚本的参数个数 $ 以一个单字符串的形式显示所有向脚本传递的参数(接收全部的参数并且作为一整块输出) $$ 脚本运行的当前进程ID号 $! 后台运行的最后一个进程的I 阅读全文
posted @ 2017-04-05 07:24 banananana 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 条件语句 if 需要注意的是 elif下面还有个then for sh 第一种表达方式 for v in item1 item2 item3 itemN do command done 第二种表达方式 for (( i=0;i 阅读全文
posted @ 2017-04-05 07:23 banananana 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 在函数名 前面加上 function也是同样的效果; 需要注意的地方是 在函数调用之前,需要先声明函数(Shell是逐行执行) 获得参数方法需要通过 $0...$n,其中$0代表文件本身 例子 结果为: 可以发现的是 $? 显示最后命令的退出状态,所以返回了100 这段语句并没有将num进行累加,所 阅读全文
posted @ 2017-04-05 07:23 banananana 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 基本运算符 算术运算符 val = 需要注意的是 表达式和运算符之间需要有空格(比如2 + 2,不能是2+2) 两边最外面的字符是`,在esc键下面,不是引号哦 乘号 前面必须加上反斜杠 才能实现乘法效果,比如 \ 条件表达式(判断语句)要放在方括号之间,并且要有 空格 条件语句为 关系运算符 关系 阅读全文
posted @ 2017-04-05 07:22 banananana 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 变量 知识点 变量赋值和输出 variable="hello world" echo $ variable 或者 echo ${ variable } (最后格式统一使用后者) 只读变量 readonly variable 设置完后无法修改原来的变量内容 删除变量 unset variable 删除 阅读全文
posted @ 2017-04-05 07:21 banananana 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 题目 "题目" Think about Zuma Game. You have a row of balls on the table, colored red(R), yellow(Y), blue(B), green(G), and white(W). You also have several 阅读全文
posted @ 2017-04-01 06:27 banananana 阅读(449) 评论(0) 推荐(0) 编辑
摘要: 题目 "题目" 大概意思是根据指定的格式将字符串进行展开 思路 递归的思路 递归计算出括号最里面的字符串,依次再处理外面一层的字符串,每个单元内的字符串类似于一个结点,个数则为结点的个数。父结点则是将这些个数的字符串组合在一起,以此类推到跟结点,就是我们要求的结果。 迭代的思路 用两个栈来分别保存下 阅读全文
posted @ 2017-03-24 16:52 banananana 阅读(342) 评论(0) 推荐(0) 编辑
摘要: 题意 "题目" 思路 一开始想用双向广搜来做,找他们相碰的点,但是发现对其的理解还是不够完全,导致没写成功。不过,后来想清楚了,之前的错误可能在于从边界点进行BFS,其访问顺序应该是找到下一个比当前那个要大的点,但是我写反了。。可以先对左边的队列进行BFS,保存其visited,再接着对右边的队列进 阅读全文
posted @ 2017-03-22 15:53 banananana 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 前言 在没有理解TCP连接是如何建立和终止之前,我想你可能并不会使用connect,accept,close这三个函数并且使用netstat程序来调试应用。所以掌握TCP连接的建立和终止势在必行。 三次握手 1. 客户端首先通过调用connect函数发起主动打开(服务器为被动打开),这导致客户端TC 阅读全文
posted @ 2017-03-22 07:46 banananana 阅读(712) 评论(0) 推荐(1) 编辑
摘要: 题意 "题目" 思路 我一开始的时候想的是最简单的方法,就是遍历所有的值为1的元素,再根据其为起点进行BFS,计算层数,但是这个方法超时了; 其实,可以不用从1开始遍历,从0开始遍历,找到和值为1相邻的0,将其的层数设置为1就行了,为什么可以不用从1开始,因为并没有要求从规定的起点到指定的位置,计算 阅读全文
posted @ 2017-03-22 00:11 banananana 阅读(471) 评论(0) 推荐(0) 编辑