题
郭立影
这个作者很懒,什么都没留下…
展开
-
用两个栈实现队列--剑指offer--python实现
队列的特性是:“先入先出”,栈的特性是:“先入后出”当我们向模拟的队列插入数 a,b,c 时,假设插入的是 stack1,此时的栈情况为:栈 stack1:{a,b,c}栈 stack2:{}当需要弹出一个数,根据队列的"先进先出"原则,a 先进入,则 a 应该先弹出。但是此时 a 在 stack1 的最下面,将 stack1 中全部元素逐个弹出压入 stack2,现在可以正确的从 sta...原创 2019-08-26 19:50:50 · 116 阅读 · 0 评论 -
例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。---py
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。二分查找法注非递减序列并不能找到最小值,因为对于{3, 3, 3, 3, 3, 1, 3} 和 {3, 1...原创 2019-08-26 20:08:54 · 197 阅读 · 0 评论 -
输入一个整数n,请你输出斐波那契数列的第n项
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39斐波那契数列的标准公式为:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)class Solution: def Fibonacci(self, n): # write code here ...原创 2019-08-27 11:08:54 · 3686 阅读 · 0 评论 -
青蛙一次可以跳上1级台阶
贪心算法(背包问题、哈夫曼编码和最小生成树)顾名思义就是每次都贪心地选择当前最好的那个(局部最优解),不去考虑以后的情况,而且选择了就不能够“反悔”了,如果原问题满足贪心选择性质和最优子结构,那么最后得到的解就是最优解。$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$动态规划每次都是综合所有子问题的解得到当前的最优解(全局最优解),而不是贪心地选...原创 2019-08-28 09:32:27 · 184 阅读 · 0 评论 -
2*1的小矩形横着或者竖着去覆盖更大的矩形
可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?n = 1 的时候只能横着覆盖,一种n = 2 的时候可以横着和竖着覆盖,两种n = 3 的时候第三级横着覆盖,用了一级,剩下 n = 2,有两种覆盖方法第三季竖着覆盖,用了两级,剩下 n = 1,有一种覆盖方法总共有 3 种n = 4 的时候第 4 级...原创 2019-08-28 17:57:13 · 437 阅读 · 0 评论 -
中负数用**补码**
输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示+++++++++++++++++++++++++++++++首先判断n是不是负数,当n为负数的时候,直接用后面的while循环会导致死循环,因为负数向左移位的话最高位补1 !因此需要一点点特殊操作,可以将最高位的符号位1变成0,也就是n & 0x7FFFFFFF,这样就把负数转化成正数了,唯一差别就是最高位由1变成0...原创 2019-08-28 18:48:19 · 158 阅读 · 0 评论 -
输入一个链表,输出该链表中倒数第k个结点。
Python 设置两个指针,p1,p2,先让p2走k-1步,然后再一起走,直到p2为最后一个 时,p1即为倒数第k个节点class Solution: def FindKthToTail(self, head, k): # write code here if head==None or k<=0: return None ...原创 2019-08-29 13:35:45 · 106 阅读 · 0 评论