
刷题(剑指offer)
qinglv1
如有问题,请发送给到邮箱:772152438@qq.com
展开
-
reduce的使用
reduce是求和的函数,上图里面的操作是对于列表a里面的偶数项加3之后的整个列表的和原创 2018-08-26 15:23:09 · 354 阅读 · 0 评论 -
给一个二值图,求出最大连通区域(可用深度优先和广度优先算法)
转载自:https://www.codetd.com/article/6541194这个问题是我在SLAM求职宝典系列D2篇中遗留的问题,因为内容较多现在单独将其列出进行解答。本篇内容分为四个部分:目录(1)二值图(2)求最大连通区域的算法(3)代码实现,以及DFS 和BFS(4) OpenCV中连通域的求解(C++ & Python)...转载 2019-06-27 18:19:05 · 4020 阅读 · 0 评论 -
求教:散点集合的外界凸多边形,算法
寻找散点集合的外界凸多边形的算法,求赐教原创 2019-06-24 21:00:43 · 2163 阅读 · 0 评论 -
图像处理笔试面试题
http://blog.itpub.net/29829936/viewspace-2168610/秋招各种笔试面试,总结下遇到的图像处理和C++的题目。写下来的都是能记起来的,记不起来的应该也有不少。大概让没有经历过的人知道会遇到什么样的问题,可以提前准备下。除了一下题目之外,最多的还是围绕着你做过的项目来问的。一、图像处理题目注意,一下所有需要写代码的题目,不允许使用OpenCV的...转载 2019-06-24 21:40:24 · 447 阅读 · 0 评论 -
剑指offer:两个链表的第一个公共结点 (Python)
转载自:https://blog.youkuaiyun.com/u010005281/article/details/80099532题目描述输入两个链表,找出它们的第一个公共结点。解题思路看到这道题之后,第一反应是用利用两个链表的长度差来做。如果两个链表有公共节点,那两个链表共用公共节点之后的部分。计算两个链表的长度差diff,让较长的链表前进diff后,这两个链表同时同步向后移动,直至两个链表...转载 2019-07-12 18:43:16 · 373 阅读 · 1 评论 -
Python最长公共子串和最长公共子序列的实现
最长公共子串(The Longest Common Substring)LCS问题就是求两个字符串最长公共子串的问题。解法就是用一个矩阵来记录两个字符串中所有位置的两个字符之间的匹配情况,若是匹配则为1,否则为0。然后求出对角线最长的1的序列,其对应的位置就是最长匹配子串的位置。def find_lcsubstr(s1, s2): m=[[0 for i in range(len...转载 2019-06-28 15:09:59 · 392 阅读 · 0 评论 -
冒泡排序
主要思想是:比如由小到大的顺序排序,那么遍历一遍把最大的元素放到最右边,一次这样做,一直把前几次的最大元素放到最右边def maopao_sort(array_input): for i in range(len(array_input)): for j in range(len(array_input)-i-1): if array_input...原创 2019-06-30 18:43:11 · 116 阅读 · 0 评论 -
选择排序
这个和冒泡排序差不多,冒泡是相邻的两两交换,然后依次将最大的放在最右边但是选择排序是一次性全部遍历完所有的(没有进行排序的部分),找到最小的元素,将最小的元素放在最左边的位置(和最左边的进行交换),剩下的再依次这样做可以参考链接:http://bubkoo.com/2014/01/13/sort-algorithm/selection-sort/...原创 2019-06-30 19:09:28 · 128 阅读 · 0 评论 -
剑指offer的从尾到头打印链表,和反转链表不一样
1.从尾到头打印链表#这个只是一个输出的数字,并不是一个链表节点class Solution: # 返回从尾部到头部的列表值序列,例如[1,2,3] def printListFromTailToHead(self, listNode): # write code here arr=[] while listNode != N...原创 2019-07-12 15:36:04 · 319 阅读 · 0 评论 -
1个数字,计算到1的时候的运算次数
如果开平方之后是整数,那么开平方。否则进行减1操作。一直运算到1需要的最小的运算次数import sysimport mathif __name__=="__main__": N = int(sys.stdin.readline().strip().split()[0]) count = 0 n =int(math.sqrt(N)) h = [n] ...原创 2019-08-02 21:35:03 · 224 阅读 · 0 评论 -
斐波那契数列(递归和for循环)
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。这个也属于斐波那契数列,他的解决方法有2种class Solution: def jumpFloor(self, number): # write code here ''' #这两个跳台阶都属于斐波那契数列,只不过递归的...原创 2019-07-21 18:45:16 · 1509 阅读 · 0 评论 -
有n个A,m个B,不能有三个相同的字母连续出现。任意写出来一个组合输出
# coding:utf-8# n->A# m->B#输入n和m,构造一个n+m长度的字符串。正好有n个A,m个B。# 不能有三个相同的字母连续出现。任意写出来一个组合输出def construct(m, n, size): if max(m, n) <= min(m, n) * 2 + 2: dif = 0 res = ""...原创 2019-08-06 21:52:55 · 1368 阅读 · 0 评论 -
整数全排列
输入一个整数N,可以将它的各个位数的数字重新组合,但是数字开头不能为0,判断他的全部的组合中,有没有是2的整数次幂的值。有就返回ture,否则返回flase。这个要求在pc机器上面1s跑完还没有来得及写代码...原创 2019-08-06 21:54:19 · 415 阅读 · 0 评论 -
寻找一个数组里面的第k大的数字,python
类似于快速排序的思想,leetcode里面的思想class Solution(object): def findKthLargest(self, nums, k): """ :type nums: List[int] :type k: int :rtype: int """ def pa...原创 2019-08-13 20:56:24 · 1190 阅读 · 0 评论 -
快速排序,python
#快速排序def QuikSort(myList,start,end): if start<end: #这个不要忘记了,必须有这个,这个防止只有一个元素之类的 i,j=start,end base=myList[i] while i<j: #这个不要忘记,否则这个就不会一直循环下去了,也就是i和j有可能会出现不相等的情况...原创 2019-06-23 10:42:54 · 289 阅读 · 0 评论 -
python 重建二叉树的三个方法
转载自:https://blog.youkuaiyun.com/fly_hawk/article/details/78388791可以查看这个作者里面别的博客转载 2019-06-16 11:31:46 · 167 阅读 · 0 评论 -
return的作用
在函数里面只要含有return,不管他的后面接的的返回什么,就会跳出这个函数,不再继续执行原创 2018-08-24 15:36:55 · 452 阅读 · 0 评论 -
链表面试题
转载自:https://blog.youkuaiyun.com/wcyoot/article/details/6426436一.题目:两个单向链表,找出它们的第一个公共结点。链表的结点定义为:struct ListNode{ int m_nKey; ListNode* m_pNext;};分析:这是一道微软的面试题。微软非常喜欢与链表相关...转载 2018-08-31 16:00:20 · 128 阅读 · 0 评论 -
类的调用
对于类的调用,先进行实例化,再进行调用。也可以参考这篇文章:https://www.cnblogs.com/chenxiaoyong/p/6279874.html原创 2018-08-24 19:16:33 · 287 阅读 · 0 评论 -
寻找栈里面最小的元素,python
一.#这个程序不知道是不是比较严格的正确。不过对于测试的程序来看,还是比较符合的。这个只是涉及到push入栈的早做了,没有涉及到出栈的操作。功能不够完善,但是可以实现找到一个固定栈的最小值#这个函数的功能是利用时间复杂度为O(1),来实现返回栈里面最小的元素。#借助一个辅助栈,利用它来存储每次入栈的最小元素。如果只用一个栈,这样的时间复杂度是O(n)class zhan_min(ob...原创 2018-09-04 12:00:22 · 552 阅读 · 0 评论 -
python对于负数的存储方式和c++/c/java不一样(二进制中1的个数)
1.在python里面,负数的存储方式a = bin(-3)print(a)a = bin(3)print(a)b = bin(-3 & 0xffffffff)print(b)c = bin(0xfffffffd)print(c)//输出//-0b11//0b11//0b11111111111111111111111111111101//0b11111...原创 2019-05-26 20:34:23 · 1482 阅读 · 1 评论 -
各个排序算法的图解示意图
转载自:https://juejin.im/post/5bd185686fb9a05d134323df图解排序算法 最近觉得自己的编程毫无进展,想修炼下自己的内功,于是就开始复习学习数据结构与算法。其实,编程的人大概都知道一句话“程序等于算法+数据结构”,理解并选用合适的数据结构,还有算法,是编写出优秀程序的前提。在JAVA JDK中,也可以窥探出数据结构算法的重要性,比如Ha...转载 2019-05-17 17:20:24 · 1336 阅读 · 0 评论 -
BAT机器学习面试1000题系列(第1~305题)
转载自:https://blog.youkuaiyun.com/v_JULY_v/article/details/78121924转载 2019-05-31 14:36:20 · 235 阅读 · 0 评论 -
python键盘输入转化为列表(做题的输入处理)
1.python对于键盘输入的读取 # 读取每一行,strip()只是去掉的输入内容的前后的符号a = sys.stdin.readline().strip() # 把每一行的数字分隔后转化成int列表对于python3也可以使用input()进行输入内容的读取(如果是python2就使用raw_input()进行读取的操作),sys.std...原创 2019-06-05 16:45:51 · 12236 阅读 · 0 评论 -
一个合法的表达式由()包围,()可以嵌套和连接,如(())()也是合法表达式;现在有 6 对(),它们可以组成的合法表达式的个数为_132___
解释:这是一个卡特兰数列我们可以把左括号看做1,右括号看做0,这些括号的组合就是01的排列这里需要满足从第一个数开始的任意连续子序列中,0的个数不多于1的个数,也就是右括号的个数不多于左括号的个数。假设我们不考虑这个限制条件,那么全部的01排列共有C(2n,n)种,也就是一半0一半1的情况现在我们想办法把其中不符合要求的数量去掉在任何不符合条件的序列中,找出使得0的个数超过1的个数的第...转载 2019-06-03 16:15:51 · 820 阅读 · 0 评论 -
常用的数据结构优缺点分析
转载 2019-06-03 18:19:12 · 725 阅读 · 0 评论 -
【Python】给定一个链表,翻转该链表从m到n的位置。要求直接翻转而非申请新空间
链表翻转 示例:给定一个链表,翻转该链表从m到n的位置。要求直接翻转而非申请新空间。如:给定1→2→3→4→5,m=2,n=4,返回1→4→3→2→5。假定给出的参数满足:1≤m≤n≤链表长度。Python代码如下:# 定义节点class SNode: Next = None Value = None# 创建带头结点的链表def createLinkL...转载 2019-06-10 11:11:42 · 629 阅读 · 0 评论 -
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
转载自:https://www.jb51.net/article/140446.htm前言跳台阶、变态跳台阶、矩形覆盖其实都和斐波那契数列是一类问题,文中通过示例代码介绍的非常详细,下面话不多说了,来一起看看详细的介绍吧。跳台阶问题描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。分析:初始值很容易得到,当n > ...转载 2019-06-16 10:33:54 · 328 阅读 · 0 评论 -
leetcode盛最多水的容器
原题:https://leetcode-cn.com/problems/container-with-most-water/利用双指针进行求解的,这样时间复杂度比较低为O(n)class Solution(object): def maxArea(self, height): """ :type height: List[int] ...转载 2019-08-17 11:19:35 · 170 阅读 · 0 评论