![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
剑指offer
超人睡不着也变无奈
这个作者很懒,什么都没留下…
展开
-
剑指offer(5)用两个栈实现队列
**用两个栈实现队列**显然有毒…好好的队列就队列…栈就栈…非要用栈来实现队列…黑人问号脸???言归正传队列:先进先出栈:后进先出,先进后出so队列和栈的关系…可以很肤浅的认为类似于负号的关系…队列先进先出,栈先进后出,颠倒了次序那次序被颠倒两次,不就正常了所以一组数据进来12345进到栈出来变成54321再把54321进栈…再出来…就是12345了就ojbk了OK...原创 2019-01-20 16:10:45 · 116 阅读 · 0 评论 -
剑指offer(6)旋转数组的最小数字
找一个数组里头最小的数字最简单的方法就是O(N)啦一个一个找过去就行了我想到的好点的方法是logn使用二分查找这样可以利用已经给的信息:数组前一部分是递增的后半部分是递减的目标:找到递增递减突变的点如果可以画出函数求导图的话…那个点就很明显…不扯了…进入正题…所以使用二分查找这里和普通二分查找不同的地方是,普通二分查找要找的是一模一样的元素此处要找的是突变点记start(s...原创 2019-01-20 16:51:26 · 108 阅读 · 0 评论 -
剑指offer(6)跳台阶
题目:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。一开始看到脑阔疼有点没思路后面想到排列组合…发现行得通各位看官没有思路的现在也可以往排列组合这边想想…简单的说问的是总共跳台阶的方式有几种假设n个台阶显然每次都跳一个台阶的话.就只有一种跳法如果有一次跳了两个台阶的话,就有C N-1 1种跳法即(n-1)...原创 2019-01-21 00:04:26 · 126 阅读 · 0 评论 -
剑指offer(9)变态跳台阶
这题不能用8跳台阶的方法了或许也可以?比较麻烦引进一种新思路类似于斐波那契数列总共有N个台阶,如果第一次跳1个台阶 ,则方案有f(n-1)种如果第一次跳2个台阶,则方案有f(n-2)种以此类推如果一次跳n个台阶,则方案有f(n-n)设定为1种总共只有1个台阶,则方案只有1种总共2个台阶,方案有2种然后递归把ok以上就是思路代码自己写写把不难...原创 2019-01-21 12:57:21 · 138 阅读 · 0 评论 -
剑指offer(25)复杂链表的复制
题目看我半天 终于知道它要干啥平时复制链表,只需要连到下一个就行了,现在多了个random,就不大好确定random是指向哪个了思路:先按普通的单链表复制一遍,这里需要遍历一次链表,遍历的同时用python的dict记录下label和node的关系比如说原链表是12345 35#2#第一次复制,得到了12345对吧同时在dict中保存了1:node1,2:node2这样的信息然后再从...原创 2019-01-28 15:36:30 · 110 阅读 · 0 评论 -
剑指Offer(二十六):二叉搜索树与双向链表
思路:先用中序遍历把树遍历一遍得到的结果就是从小到大排好序的序列然后再在这个序列上,连接好左右指针就完事了class Solution: def __init__(self): self.nodelist=[] def inorder_traversal(self,root): if(root.left!=None): ...原创 2019-01-28 16:46:16 · 107 阅读 · 0 评论 -
剑指offer(33)丑数
哇有点难受这两天做的什么连接字符串,最大字段和,丑数什么的都不会做各种上网看大佬的解法不是自己想出来的就是会郁闷丑数:只有2,3,5质因子所以下一个丑数肯定是之前存在的丑数乘上2 or 3 or 5第一个丑数是1乘数因子是2,3,5算法:建立三个指针two three five最初都指向第一个丑数然后新丑数new=min(2* two指向的丑数,3three指向的丑数,5f...原创 2019-01-29 23:01:54 · 114 阅读 · 0 评论