乐元素面试

2014-09-24下午,在一家宾馆,记录问到的几个问题:

在一个很大的平面图上,有很多的点(大数问题,不能每次循环),让求到给定的某点距离为500(或者其他数)的所有点的坐标,在存储数据时应该如何存储。

可以这么干:

ab
cd
将平面分成这样的四个部分,然后对每个小部分两次细分,可以得到:
aaabbabb
acadbcbd
cacbdadb
cccddcdd
这样就对每一块进行了命名,这样细分了10次后,第一块名为:aaa aaa aaa a

每个数据存储时,不但存储坐标值x,y,还要存储所在块的信息。



二面:旋转字符串,两个字符串,判断第二个是否是第一个旋转得到的,比如:abc和cab就是一对旋转

解决方法1(这是面试官最后给出的解法):原字符串abc,cab是一个旋转,保存两个旋转cab cab 就能看出规律了,只判断cabcab是否包含abc就可以了,最好能用KMP算法解决之。    

解决方法2(当时自己想到的,在没有重复字符时可以用):两个指针分别指向两个字符串,p1一直向后走,直到找到p2;然后同时向后移动,若出现不同字符,则肯定不是最后结果;一直到p1指向最后;然后p1回到最开始,继续同时向后移动,直到p2指向最后。。。。


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值