问题:如何将一个数组循环左移或者右移k位?
在下面的解决方案中,我们以循环左移为例。 我们最容易想到的是,将前k个元素复制到一个临时的数组中,然后将剩下的n-k个元素向左移动k个位置,然后将之前的k个元素复制到剩下的位置。这种方法使用了k个额外的存储空间。我们想到到另一种方法是,只借助一个临时空间,每次只向左移动1位,循环k次。这种方法产生了多于的运行时间。前面一篇文章中用程序...
分类:
移动开发 时间:
2014-05-07 23:22:35
阅读次数:
410
最近,在看一个本书《如何阅读一本书》
文中谈到Skim-read,粗读。
审视我一直以来的阅读习惯,觉得基本是反面教材:
顺序阅读,力求每一句都理解,以看完一本书为目标。
略读:
1、书名,是否包含你想了解的方面
2、序言、出版者的话等,看下这本书的目的
3、目录,对此书的基本架构做概括性的理解;
. 旅行之前,地图还是很有必要去看的。
4、索引(一般的英文书都有...
分类:
其他好文 时间:
2014-05-07 21:45:43
阅读次数:
290
随着数字视频广播(DVB)的发展,观众会面对越来越多的数字电视节目的选择。而广播业者由于投资成本的增加,则要求对用户收取一定的收视费用。条件接收系统(Conditional Access System)就是为了满足对某些广播服务实施接入控制的系统。它的主要功能就是确保只有支付了或者即将支付费用的用户才能收看所选择的电视节目。
1 CA系统的关键技术
在CA系统中,有两项最为关键的技术:一是加扰...
分类:
其他好文 时间:
2014-05-07 22:44:35
阅读次数:
503
关于微信公众平台确实是个很好的东西,鉴于需要完成这样一个作业花了2天时间来研究这个,做出了一个简单的东西。
我们选择的语言是JAVA(当然PHP开发这个更简单,不过我没学,考虑时间成本而继续用自己熟悉的),所用的服务器是SAE(BAE也可以),以及一个微信公众平台测试账号。http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=san...
分类:
微信 时间:
2014-05-07 21:39:24
阅读次数:
724
TFTP(Trivial File Transfer Protocol)是基于UDP协议开发,用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。
一、修改/etc/xinetd.d/tftp配置文件,如下:
$ cat /etc/xinetd.d/tftp
service tftp
{
protocol = udp
...
分类:
系统相关 时间:
2014-05-07 23:05:14
阅读次数:
452
大意:乔治要为比赛命题,共n道,每道题的复杂度给出。他自己已经准备好了m道题,复杂度也给出。若命题的复杂度不低于要求的复杂度,则认为此题合格。
问:乔治尽可能多的用自己的题,那么他最少还得出几道新题?
分析:尽量多用已有的题,就要求对自己的题按复杂度由低到高排序,从头到尾遍历,若能用则用(贪心)。对要求的题也排序是为了便于比较。...
分类:
其他好文 时间:
2014-05-07 23:23:38
阅读次数:
364
我们在机房选择、测试网络的质量的时候,往往只根据跳数、延迟、抖动、网络吞吐量等指标来衡量,很多时候跳数并不能完全显示网络拓扑优劣,于是写了个traceroute结合whois的小脚本来直观显示每一跳所处的网络位置。
需要安装mtr和whois
脚本:
[root@localhost ~]# more geotrace.sh
#!/bin/bash
ec...
分类:
其他好文 时间:
2014-05-07 23:56:29
阅读次数:
474
Python+Django+SAE系列教程11-----request/pose/get/表单...
分类:
编程语言 时间:
2014-05-07 23:31:54
阅读次数:
653
凸包:把给定点包围在内部的、面积最小的凸多边形。
本文介绍求解二维凸包的O(nlogn)的Andrew算法和少量例题,以及代码模板。...
分类:
其他好文 时间:
2014-05-07 22:55:55
阅读次数:
600
NDK全称:Native Development Kit。
1、NDK是一系列工具的集合。
* NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。这些工具对开发者的帮助是巨大的。
* NDK集成了交叉编译器,并提供了相应的mk文件隔离平台、CPU、API等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”...
分类:
移动开发 时间:
2014-05-07 21:47:45
阅读次数:
613
概述
Redis不仅可以作为缓存来使用,也可以作为内存数据库。Redis作为内存数据库使用时,必须要解决一个问题:数据的持久性。有些将Redis作为缓存使用的场景也需要将缓存的数据持久化到存储介质上,这样在Redis重启后仍然能对热点数据提供缓存服务,不会因为缓存数据的缺失而对整个系统造成冲击。
本文就Redis内置的持久化机制进行说明。...
分类:
其他好文 时间:
2014-05-08 00:03:42
阅读次数:
356
Memcache的特点: 分布式内存对象缓存系统,占用其他机子的内存。很多互联网,负载均衡三台(以三台为例)web服务器可以共享一台Memcache的资源。传递的信息以键值对的形式存储。传递的数据要实现序列化。
Oscache的特点: 页面级缓存,占用本机的内存资源。可以选择缓存到硬盘,如存取到硬盘重启服务也可重新获得上次持久化的资源,而如果缓存到内存就不行。一般没必要缓存到硬盘,因为I/O操作...
分类:
其他好文 时间:
2014-05-07 23:34:49
阅读次数:
284
exit.c 代码分析笔记
release
释放进程的函数release() 主要根据指定进程的任务数据结构指针,在任务数组中删除指定的进程指针,释放相关内存页,并立刻让内核重新调度进程的运行。
void release(struct task_struct * p) //释放p指向的进程
{
int i;
if (!p) //常规检测...
分类:
系统相关 时间:
2014-05-07 23:35:51
阅读次数:
576