![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
lintcode
madujin
这个作者很懒,什么都没留下…
展开
-
快速幂 及 快速幂取模
求a^n,常规求法,for(int i=1;i<=n;i++){ a*=a;}时间复杂度为O(n);有没有更小的时间复杂度呢? 有;在程序里,比O(n)更小的数量级很容易想到O(log n), 这种对数数量级,常规的思路就是二分,而二进制能够很好的解决这一问题。例如求3^13思路:n转化为二进制,13=2^3+2^2+2^0;转而求3^(2^3+2^2+2^0)=3^(2^3原创 2017-02-15 20:36:25 · 283 阅读 · 0 评论 -
lintcode 加油站(187)
在一条环路上有 N 个加油站,其中第 i 个加油站有汽油gas[i],并且从第_i_个加油站前往第_i_+1个加油站需要消耗汽油cost[i]。你有一辆油箱容量无限大的汽车,现在要从某一个加油站出发绕环路一周,一开始油箱为空。求可环绕环路一周时出发的加油站的编号,若不存在环绕一周的方案,则返回-1。 注意事项数据保证答案唯一。您在真实的面试中是否遇到原创 2017-02-16 16:39:54 · 280 阅读 · 0 评论 -
lintcode 最大数(184)
给出一组非负整数,重新排列他们的顺序把他们组成一个最大的整数。 注意事项最后的结果可能很大,所以我们返回一个字符串来代替这个整数。您在真实的面试中是否遇到过这个题? Yes样例给出 [1, 20, 23, 4, 8],返回组合最大的整数应为8423201。挑战 在 O(nlogn) 的时间复杂度内完原创 2017-02-16 22:07:36 · 351 阅读 · 0 评论 -
lintcode 跳跃游戏(116)
给出一个非负整数数组,你最初定位在数组的第一个位置。 数组中的每个元素代表你在那个位置可以跳跃的最大长度。 判断你是否能到达数组的最后一个位置。 注意事项这个问题有两个方法,一个是贪心和 动态规划。贪心方法时间复杂度为O(N)。动态规划方法的时间复杂度为为O(n^2)。我们手动设置小型数据集,使大家可以通过测试的两种方式。这仅仅是为了让大家学会如何原创 2017-02-17 16:08:24 · 688 阅读 · 0 评论 -
lintcode 求全排列(15)
注意事项你可以假设没有重复数字。您在真实的面试中是否遇到过这个题? Yes样例给出一个列表[1,2,3],其全排列为:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]*********************************原创 2017-02-20 21:40:54 · 1485 阅读 · 0 评论 -
lintcode 排序列表转换为二分查找树(
给出一个所有元素以升序排序的单链表,将它转换成一棵高度平衡的二分查找树您在真实的面试中是否遇到过这个题? Yes样例 21->2->3 => / \ 1 3***********************************************************原创 2017-02-21 22:29:36 · 243 阅读 · 0 评论 -
lintcode 复制带随机指针的链表(105)
复制带随机指针的链表 描述 笔记 数据 评测给出一个链表,每个节点包含一个额外增加的随机指针可以指向链表中的任何节点或空的节点。返回一个深拷贝的链表。 **********************************************************************因为题目多了一个rand原创 2017-02-22 15:54:13 · 364 阅读 · 0 评论 -
lintcode 带环链表(102)
给定一个链表,判断它是否有环。您在真实的面试中是否遇到过这个题? Yes样例给出 -21->10->4->5, tail connects to node index 1,返回 true*****************************************************************************原创 2017-02-23 09:04:41 · 232 阅读 · 0 评论