RSS

Monthly Archives: 一月 2012

面试题一则,从一组无序整数中找出唯一一个不成对的整数

题意也可以表达为“有2n+1个整数,其中2n个整数是成对,如何找出那一个不成对的整数”

例如:
{8}中的8
{1, 3, 1}中的3
{12, 45, 58, 58, 45, 45, 12, 7, 7}中的45

好吧,建立一个List存放未配对数字,挨个对比 (1)List中无,Add (2)List中有,Remove 这种做法面试官已经说不对了,时间复杂度是O(n2),太高了。

有一种方法可以解决这个问题:
从第一个整数开始,依次进行异或计算(XOR)。a[1] XOR a[2] XOR a[3]….XOR a[2n+1]

想详细了解XOR的朋友请点击:http://en.wikipedia.org/wiki/XOR

熟悉Java的朋友可以试试下面的代码:

int[] integers = {12, 45, 58, 58, 45, 45, 12, 7, 7};
int result = 0;
for(int i : integers) {
result ^= i;
}
System.out.println(result);

时间复杂度为O(n)哦。

 


 
1 Comment

Posted by on 一月 17, 2012 in

 

Tags: ,

Mac OS X中通过程序修改系统网络设置的proxies

希望在Mac OS X中通过SSH代理上网的朋友请查看Mac OS X中使用SSH连接Dreamhost建立SOCKS代理上网。本文仅探讨通过程序(Objective-C或者Shell)修改设置中的代理选项。

遇到的问题:
在Mac OS X中,希望通过程序修改System Preferences->Network->AirPort->Advanced->Proxies->SOCKS Proxy的勾选或者说是SOCKSEnable的状态。

解决方案:
使用命令行工具/ usr/sbin/networksetup,networksetup -setsocksfirewallproxystate “AirPort” “on” 即可启用AirPort的SOCKS Proxy,networksetup -setsocksfirewallproxy “AirPort” “127.0.0.1″ “7070″ 即可修改AirPort的SOCKS Proxy Server为127.0.0.1,端口为7070,同时启用SOCKS Proxy。
知道networksetup之后,再通过NSTask执行上述的命令相信大家都会,就不再赘述了。
当然,networksetup实际上是非常强大的,想要了解更多networksetup的用法请查看networksetup Mac OS X的Manual Page

至于通过SystemConfiguration Framework和Security Framework的Authorization来修改Mac OS X的网络设置,目前SCDynamicStoreSetNotificationKeys是可以监测网络设置的变动,但是即使AuthorizationCopyRights成功之后,SCDynamicStoreSetValue依然失败,会返回如下信息:
Error Domain=com.apple.SystemConfiguration Code=1003 “The operation couldn’t be completed. (com.apple.SystemConfiguration error 1003 – Permission denied)” UserInfo=….{NSDescription=Permission denied}“ 。
如果之后有时间回头再看看SystemConfiguration Framework和Security Framework,并解决了这个问题,我也会更新在这里的。

详情如下: 查看全文 »

 
2 Comments

Posted by on 一月 5, 2012 in Mac OS, Objective-C

 

Tags: , , , , , , , , ,

HTML中input文本输入框增加提示(hint)

面临的问题:

需要对网页上的<input type=”text”>增加提示信息的展示,类似Android中EditText的Hint和iOS中UITextField的place holder。

解决方案:

1. 使用一个相对定位的div,使提示信息显示在输入框中;
2. 使input响应获得焦点与失去焦点的事件,onfocus时提示信息消失,onblur时若value为空,提示信息出现;
3. 使div响应点击事件,onclick时让input获得焦点。

示例代码: 查看全文 »

 
3 Comments

Posted by on 一月 1, 2012 in solutions

 

Tags: , , ,