摘要:
题目:设有n个正整数,将它们连接成一排,组成一个最小的多位整数?例如:n=2时,2个整数32,321连接成的最小整数是:32132; n=4时,4个整数55,31,312,33连接成的最小整数为:312313355。解答:由于题目涉及到整数的连接,如果直接进行整数的连接,可能会超出整数的表示范围,因此我们将之转换为字符串之间的连接更简单些,同时自定义字符串的比较规则:如果字符串A+B > B+A,那么A>B。同时可以证明A+B>=B+A,B+C>=C+B,则A+C>=C+A。因此,解题思路为:1)先将输入的n个整数转换成字符串;2)按照自定义的字符串比较规则将n个 阅读全文
摘要:
Firefox有个自动翻页的插件AutoPager,使用起来非常的方便。腾讯微博也有相同的功能,当鼠标滑动到底部时会自动展开下一页,如下图所示:展开后如下所示:这个功能虽然比较小,但是实现起来是非常有意思的事情,我们可以选择多种方法达到目的。下面我介绍一种简单的实现方式。1、首先移动滚动条会触发window.onscroll事件。2、我们可以根据滚动条滚动时屏幕位置和页面底部的距离来判断是否需要翻页。需要用到三个函数:1、pageHeight:页面总高度。2、windowHeight:屏幕高度。3、ScollY:页面滚动的高度。pageHeight减去windowHeight减去ScollY即 阅读全文
摘要:
译自:http://surgeworksmobile.com/iphone/starting-with-titanium-and-android 译言版本:http://article.yeeyan.org/view/153993/122458原文作者:Radu Cojocaru 转载请标明出处:蒋宇捷(hfahe) http://blog.csdn.net/hfahe Appcelerator Titanium是3个跨平台的手机架构之一(另外两个是Rhodes和PhoneGap)。像PhoneGap一样,它通过Javascript拓展了手机设备的性能,它允许你使用HTML、CSS和Javas 阅读全文
摘要:
作者:蒋宇捷(hfahe)版权声明:原创作品,欢迎转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。 概述 Android上的主要开发语言是Java,让很多PHPer觉得非常遗憾。但是自从ASE(Android Scripting Environment-Android脚本环境)诞生后,允许用户直接在Android设备上运行脚本,ASE已经支持Python、Lua和BeanShell、Perl等脚本语言。ASE的实现原理其实和OMS的BAE(Browser based Application Engine)平台比较类似。可以在http://code.google.com/p/a 阅读全文
摘要:
线程局部存储(Thread Local Storage,TLS)用来将数据与一个正在执行的指定线程关联起来。我们在应用程序和DLL中可以使用两种类型的TLS:动态TLS和静态TLS。但一般来说,这两项技术在创建DLL的时候更加有用,这是因为DLL通常并不知道它们被链接到的应用程序的结构是什么样的。但是在编写应用程序时,我们一般都知道自己要创建多少线程,自己会如何使用这些线程。然后我们就可以设计一些替代方案来为每个线程关联数据,或者设计得好一点的话,可以使用基于栈的方法(局部变量)来为每个线程关联数据。动态TLS:一般通过调用一组4个API函数来使用动态TLS,这些函数实际上最经常为DLL使用。 阅读全文
摘要:
一般情况下,应用程序使用的内存空间里有以下“默认”的区域:1)栈:用于维护函数调用的上下文,离开了栈函数调用就没法实现。栈通常在用户空间的最高地址处分配,通常有数兆字节的大小;2)堆:用来容纳应用程序动态分配的内存区域,当程序使用malloc或new分配内存时,得到的内存来自堆里。堆通常存在于栈的下方(低地址方向),在某些时候,堆也可能没有固定统一的存储区域,堆一般比栈大很多,可以有几十到数百兆字节的容量;3)可执行文件映像:存储着可执行文件在内存中的映像。由装载器在装载时将可执行文件的内存读取或映射到这里。4)保留区:这并不是一个单一的内存区域,而是对内存中受到保护而禁止访问的内存区域的总称 阅读全文
摘要:
调度算法是根据系统的资源分配策略所规定的资源分配算法。调度算法必须实现几个相互冲突的目标:进程响应的时间尽可能快,后台作业的吞吐量尽可能高,进程的饥饿现象尽可能避免,低优先级和高优先级进程的需要尽可能调和等等。目前存在以下几种调度算法,适用于不同的系统,以实现不同资源管理目标:1)先来先服务调度算法(FCFS,First Come First Served)作业调度中:每次从后备作业队列中选择一个或多个最先进入该队列的作业,将它们调入内存,为它们分配资源、创建进程,然后放入就绪队列中;进程调度中:每次调度是从就绪队列中选择一个最先进入该队列的进程,把处理机分配给它,使之投入运行。先来先服务调度 阅读全文
摘要:
要显示“查找”和“替换”文本对话框分别使用函数FindText和ReplaceText:HWND WINAPI FindText( __in LPFINDREPLACE lpfr);HWND WINAPI ReplaceText( __inout LPFINDREPLACE lpfr);这两个函数都使用同样的FINDREPLACE结构:typedef struct { DWORD lStructSize; //结构长度 HWND hwndOwner; //所属窗口 HINSTANCE hInstance; // DWORD Flags; //标志 LPTSTR lpstrFindWhat; / 阅读全文
摘要:
“字体”通用对话框列出了系统中安装的字体,用户可以在上面选择字体名称,同时可以选择字体大小、颜色,以及一些效果如斜线、粗体、删除线或下划线等,显示选择“字体”对话框的函数是ChooseFont:BOOL WINAPI ChooseFont( __inout LPCHOOSEFONT lpcf);lpcf指向CHOOSEFONT结构:typedef struct { DWORD lStructSize; //结构长度 HWND hwndOwner; //所属窗口 HDC hDC; //当Flags标志指定CF_PRINTERFONTS标志时,它是打印机的DC句柄 LPLOGFONT lpLogF 阅读全文
摘要:
Windows操作系统为一些常用功能提供了一些通用对话框(Common Dialog Box),比如,在不同应用程序中运行打开文件、选择字体、选择颜色等操作时,不同程序显示的对话框的模样都是一样。这些对话框是操作系统提供的,实现对话框的代码封装在Comdlg32.dll库文件中,由于不同版本的Comdlg32.dll在设计上可能有所不同,所以不同版本的Windows下对话框会有所不同。Windows提供多种通用对话框,每种通用对话框都使用一个专用的函数来创建和显示,另外,提供一个数据结构供初始化对话框使用,并在同一个数据结构中返回用户在对话框中输入的数据。“打开”文件和“保存”文件对话框显示“ 阅读全文