忙活了近两个月的大事终于告一段落了,结果令自己和大家都很满意。接下来就该继续着手自己的事了。
1、cce的网站需要做一个了结
2、LetsSwift更新应该继续
3、物联网课程还有2次要继续
4、公积金需要签一下
5、把门换一下
6、smartcity继续
7、最重要的smartemple和rockwill开始运营
生命不止,奋斗不已
忙活了近两个月的大事终于告一段落了,结果令自己和大家都很满意。接下来就该继续着手自己的事了。
1、cce的网站需要做一个了结
2、LetsSwift更新应该继续
3、物联网课程还有2次要继续
4、公积金需要签一下
5、把门换一下
6、smartcity继续
7、最重要的smartemple和rockwill开始运营
生命不止,奋斗不已
一切的转变都发生在要结束生命的那一刻,都发生在死亡如此之近的时候,才发现生命中什么是最重要的,不是痛苦,不是绝望,而是爱!为了爱,甘愿痛苦;为了爱,敢于直面绝望。这正如尼采所说:“一个人有了活着的理由,就可以承受生活的任何境遇。”
Everything in your life is a reflection of a choice you have made. If you want a different result, make a different choice.
孩童之所以荒唐是因为任何生物的死,即便是一只苍蝇,都是一场灾难;但与此同时,从诸神的角度来看,我们的死于苍蝇的死同样是微不足道的。
美国医生爱德华·特鲁多的墓志铭:有时治愈,常常帮助,总是安慰,To cure sometimes; to relieve often; to comfort always.
不奴役别人,不爱慕虚荣,用心去感受每个事物,认真对待自己拥有的每样东西,懂得美,善自知,又有爱,就像在放风筝抓气泡的小孩一样纯真。
近期刷题小结:
之前的方法主要是转成字符串,或者是翻转数字之后比较。但是题目要求不能使用额外的空间,所以需要直接取出数字的首末位比较。先求得数字的位数,然后用(x % 10) != (x / (int) (Math.pow(10, len – 1))) 比较头尾,每次比较完之后会掐头去尾得到一个新的数,依次可求是否为回文数。
模式匹配还是需要用到递归的,看起来也比较清楚。每次获取两个字符串的首位,然后主要有两种情况:1、单个字符,且后续没有*号,直接比较,然后比较各自-1的子串;2、后续有*号,这种情况相对复杂,又分成三种可能,最常见的是aaa和a*这样,a*匹配所有的a;一种是像aaa和aa*a这种,可能a*只匹配1个a;另外一种是像aa和c*a*,c*根本不匹配。
暴力算法就是循环两遍,找到所有的组合比较,效率较低
可以分析得出,如果从两端开始计算,依次缩小范围,只有可能中间的两块板特别高,才有可能比摊平的要大。所以依次取left和right计算area,然后将较小的抛弃,计算内部的可能area。
这两个的思想都是先定义了对应关系:
int[] nums = { 1, 4, 5, 9, 10, 40, 50, 90, 100, 400, 500, 900, 1000 };
String[] romans = { “I”, “IV”, “V”, “IX”, “X”, “XL”, “L”, “XC”, “C”, “CD”, “D”, “CM”, “M” };
然后使用累加的思想,每次累加依次,就输出一个罗马数字,这也是罗马数字本身的思想。比如III是3个1累加和VI是5加1
反过来也是,依次从最大的开始匹配字符串,然后累加,比如DCXXI,依次匹配D,C,X,X,I,因为不存在DC或者XI这样的组合
注意都是要从最大的数开始累加
这个的思想比较直接,时间复杂度是O(nm),n个字符串,m是最长前缀子串的长度。
依次取出第i个字符,看是不是每个字符串都包括,如果包括就加入common prefix
大部分有一点其他平台开发基础的初学者看到XCode,第一感想是磨拳擦掌,看到Interface Builder之后,第一感想是跃跃欲试,而看到Objective-C的语法,第一感想就变成就望而却步了。好吧,我是在说我自己。
如果你和我一样,对苹果相关的开发:Mac OS X或是iPhone有兴趣,但是第一时间看到Objective-C就会头疼并伴有发烧症状的话,疗效比较好的快速治疗方法是阅读本文。大概花二十分钟左右,而且绝不无聊的时间,你就会对Objective-C有那么一点点了解,至少读读例子不会那么头疼了。
不过假定你要有那么一点点c++、c#或是java的基础,至少能看到c++、c#或是java的源码,能够大致明白说得是什么。
这篇文章不是一篇科技文章,希望你也不要把它当做科技文章来读。文章非常不严谨,但是我相信你能看得懂。
一、XCode、Objective-C、Cocoa说的是几样东西?
答案:三样东西。
XCode:你可以把它看成是一个开发环境,就好像Visual Studio或者Netbeans或者SharpDevelop一样的玩意。你可以将Interface Builder认为是Visual Studio中用来画界面的那部分功能单独提出来的程序。
Objective-C:这是一种语言,就好像c++是一种语言,Java是一种语言,c#是一种语言,莺歌历史也是一种语言一样。
Cocoa:是一大堆函数库,就好像MFC、.NET、Swing这类玩意,人家已经写好了一堆现成的东西,你只要知道怎么用就可以了。
有些人会比较容易混淆Objective-C和Cocoa,就好像有些人会混淆c#和.NET一样。这两个东西真的是两个不一样的东西。
你可以把它认为是语法稍稍有点不一样的c语言。虽然第一眼望上去你可能会认为它是火星语,和你所认知的任何一种语言都不一样。
先简单列出一点差别:
问题一:我在程序中看到大量的减号、中括号和NS****这种东西,他们是什么玩意儿?
1 减号(或者加号)
减号表示一个函数、或者方法、或者消息的开始,怎么说都行。
比如c#中,一个方法的写法可能是:
private void hello(bool ishello)
{
//OOXX
}
用Objective-C写出来就是
-(void) hello:(BOOL)ishello
{
//OOXX
}
挺好懂的吧?
不过在Objective-C里面没有public和private的概念,你可以认为全是public。
而用加号的意思就是其他函数可以直接调用这个类中的这个函数,而不用创建这个类的实例。
2 中括号
中括号可以认为是如何调用你刚才写的这个方法,通常在Objective-C里说“消息”。
比如C#里你可以这么写:
this.hello(true);
在Objective-C里,就要写成:
[self hello:YES];
3 NS****
老乔当年被人挤兑出苹果,自立门户的时候做了个公司叫做NextStep,里面这一整套开发包很是让一些科学家们喜欢,而现在Mac OS用的就是NextStep这一套函数库。
这些开发NextStep的人们比较自恋地把函数库里面所有的类都用NextStep的缩写打头命名,也就是NS****了。比较常见的比如:
继续刷题
atoi函数的实现,需要注意的问题:
The function first discards as many whitespace characters as necessary until the first non-whitespace character is found. Then, starting from this character, takes an optional initial plus or minus sign followed by as many numerical digits as possible, and interprets them as a numerical value.
The string can contain additional characters after those that form the integral number, which are ignored and have no effect on the behavior of this function.
If the first sequence of non-whitespace characters in str is not a valid integral number, or if no such sequence exists because either str is empty or it contains only whitespace characters, no conversion is performed.
If no valid conversion could be performed, a zero value is returned. If the correct value is out of the range of representable values, INT_MAX (2147483647) or INT_MIN (-2147483648) is returned.
1.从第一个不是空格的开始转换
2.如果空串,或者全是空格,或者没有符号+数字这种组合出现,返回0
3.注意正负和int越界的问题
4.连续符号出现返回0
5.转换过程中如果遇到其他非数字字符,停止转换,返回现有值
艺无止境,指在艺术发展的道路上是没有止境的,不论自己的技艺有多么精湛,世界上也还是会有比你更厉害的人。
虚怀若谷,意指胸怀像山谷那样深而宽广,形容十分谦虚,心胸开阔。
艺谷,艺无止境的山谷,艺术的境界也应该是像山谷一样,深而宽广,没有止境,没有尽头。做艺术也应该谦虚,心胸开阔,才能创作出好的作品。
继续在Coursera上复习算法
包括
Union-Find:快速查找,快速连接,找到最顶端父节点连接
元素排序算法:选择排序(每次交换较小的到首位),插入排序(插入到已排序的数组),希尔排序(间隔13-4-1插入排序),乱序方法(O(n)时间复杂度的随机序方法)
随机散点的凸多边形问题,Y坐标排序,遍历取角度,判断是否逆时针
待学习:
堆栈,变长数组,队列
leetcode方面
最长回文子序列:反向字符串求最长子串,哨兵和反射结构
Add Two Numbers:链表反序存储和进位
ZigZag Conversion:数学问题,找位移规律
Reverse Integer:反向没有0开头,注意负数情况
重新开始学习算法
Coursera在线课程,普林斯顿的算法一、二
教材是《Algorithm》
练习题主要是leetcode.com上的OJ里面题,一个一个开始刷吧
全Java实现
今天主要是复习快排,二分,集合操作,求两数和的位置,两有序数组的第K大数,最长无重复连续子串
博客写了也有很多年了,转眼又是一年。在这里记录一下吧~
06年的元旦大班一群人在冰天雪地里会被冻坏,今天已经各自奔天涯了。
还好北京还有一群朋友在。
1.北京市4000用户“尝鲜”4G
北京移动上月开始招募的体验用户,近日开始“尝鲜”更为快捷的4G网络。陆续有4000多名本市体验用户拿到申请的4G终端,开始为期6个月的测试体验。首批“尝鲜”的体验者市民古先生拿到手的是一个iPhone 5一半大小的白色设备,这个白色小机器就是可以将4G网络信号转换成手机、iPad、笔记本电脑都通用的WiFi信号的MiFi。MiFi俗称“上网伴侣”,它的功能是将4G网络信号转换成手机、iPad、笔记本电脑等移动终端通用的无线信号。
PS:不知道效果如何,另外cnbeta的喷子真多……3M/s比10Mbps的网速要快好不好,我们常说的10M宽带是小b,要除以8的……
2.三星Galaxy Note III屏幕组件曝光 边框厚度仅2.2mm
三星已经证实了Galaxy Note III将在9月4号的发布会上露面的消息,但今天泄露的一组照片,已经提前暴露了该机的屏幕组件。文中照片均为eTrade Supply所摄,其声称这些图像绝对可信。但在把所有画面都整合到一起之前,我们仍需要对此持审慎的态度。如果消息属实,那么Galaxy Note III的屏幕尺寸就是5.68英寸、边框厚度2.2毫米、屏幕厚度更是只有1.8mm。
PS:期待9月份上旬几家公司都要发布新产品了,智能手表什么的很有意思。iPhone的无边框概念要被三星实现了么……如果iPhone还继续这样出,估计没人买了吧。
3.围观几天的Bo案和Li案
Bo案就像是在好玩一样,打太极么。不过真是一个家庭的悲剧,看到早年的一些家庭合影。真是于己是一个小家的破裂,于人是社会的悲剧啊。
Li案就更闹不明白了,老Li也被气得生病无法出庭。网络围观确实是一件很可怕的事情。