公司被合并,最近动荡的厉害,其实我是没有执意要走的想法,可是周围的同事,十有八九都去外头面试了,影响的我是一愣一愣的。
于是乎,我也想去面面了,倒不是非要去哪,衡量一下水平也是很好的嘛。
可是一个自测才突然发现,一向自伐的算法强项居然是一塌糊涂,真的是一天不练就手生,三天不练就门外汉呐。所以决定,今后尽量每天都去做一些算法的思考和练习,如果大家见到很渣的写法,还请不要笑话。如果大家有了特好的处理方法,还希望可以相互交流,咱不是还有个交流园地么。。。
题:实现一个算法,确定一个字符串的所有字符是否都不相同。
我的做法:
建立一个数组,遍历字符串,将当前字符对应的数组位置加1,最后遍历数组,有大于1的,就说明有重复。
最优吗,当然不优,比人家别人的做法,多进行了好多次循环,无用功,浪费了好多时间, 别人的做法:
更加节省空间的做法,是用位来代替数组,省下了8分之7的空间,看这抠唆的。。。。
再问:如果不能借助额外的数据结构呢??
我的想法暂时也就停留在O(n2)的两层循环了,大家有木有好的方法要告诉我的,留言那。。。
哎。差距呐,这么个小小的思维题,体现出的是严谨的逻辑,优秀的思维,真正的计算机功底。。。。
革命尚未成功,同志仍需努力。。。争取明天继续。。。。