每日算法
whisperisman
这个作者很懒,什么都没留下…
展开
-
两个单向链表,存在同一个元素,求其交点
假设两个链表分别为 a 、b , 长度分别为 m 、n这个题目最首先想到的可能是: 先循环遍历其中链表a,然后在该循环中遍历链表b,然后判断两个链表的节点是否相同, 假设a的长度为m,b的长度为n, 那么该算法的复杂度为O(mn) 这并不是一个高效的办法分析:思考一下单链表的特性 :每个节点都有且仅有一个子节点。两个单链表拥有同一个元素,也就是说这个同一个元原创 2016-10-31 10:43:33 · 604 阅读 · 0 评论 -
如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1)
咋一看会觉得没有办法实现,因为所有的排序方法都无法满足该时间复杂度o(n)和空间复杂度o(1)。但是如果n是有限的,其实是有办法可解的:假设n 没有超过int的最大值 ,0可以定义一个大小为65535的数组,遍历n个元素,以其值做索引,值为出现的个数0 -》 array[0]++;1 -》 array[1]++;.... 再遍历array数组,根据array数组打印出现原创 2016-10-31 10:41:45 · 5610 阅读 · 2 评论 -
求两个大整数相乘的结果 不能使用BigInteger和long
提示: 1、 两个数相乘的值的位数不会超过两者位数之和 2、char转换成int时,直接用int接受的值为asiic码值, 可以使用Character.getNumericValue(‘3’) 获取实际数值 3、乘数 * 被乘数 将各位置分别相乘时,要注意索引位置, 最后再计算进数 5、消除字符串前面的无效字符0, 此处使用正则表达式替换代码:public s原创 2017-03-09 16:54:15 · 895 阅读 · 0 评论