数据结构与算法
Initial-T
规格严格,功夫到家。做优秀的软件工程师,写漂亮的代码。
展开
-
算法入门—《啊哈算法》读书总结
最近要开始准备秋招了,作为非计算机出身,还有大量的坑需要填,这几天研究了算法入门书——《啊哈算法》,算是读过最通俗易懂的了,趁还有印象总结一下,以便未来参考。一、排序1 桶排序——用book(数组)标记每个数出现的次数注意: 若0-1000排序,需要1001个桶;时间复杂度为O(m+n)2 冒泡排序——每次比较相邻的两个元素,如果他们的顺序错误,则交换过来注意: 若n个数排序,...原创 2019-04-02 16:52:14 · 759 阅读 · 1 评论 -
二刷剑指offer(中)——21-40题
21从上往下打印出二叉树的每个节点,同层节点从左至右打印。def PrintFromTopToBottom(self, root): if not root: return [] res = [] queue = [root] while queue: if queue[0].l...原创 2019-05-16 15:26:43 · 156 阅读 · 0 评论 -
二刷剑指offer(下)——40-66题
41输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。 if not array: return [] i = 0 j = len(array) - 1 num = 0 while i < j: ...原创 2019-05-21 15:20:52 · 193 阅读 · 0 评论 -
以华为2016年笔试题为例,详解牛客网的在线判题系统(OJ模式)
之前一直刷的剑指offer,听闻真题的坑挺多也不以为意,今天试刷了一道,踩出了许多经验。题目描述如下:地址:https://www.nowcoder.com/test/question/3897c2bcc87943ed98d8e0b9e18c4666?pid=260145&tid=23740103首先被输入输出整的一头雾水,后来得知即标准的输入(键盘)与输出(屏幕)。于是...原创 2019-05-06 21:29:31 · 4071 阅读 · 0 评论 -
二刷剑指offer (上)——1- 20题
1在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。# -*- coding:utf-8 -*-class Solution: def Find(self, target, array): if not array: ...原创 2019-05-08 23:08:08 · 304 阅读 · 0 评论 -
牛客网习题集——剑指offer面试题第六部分(二叉树的各种遍历,堆的用法)
1给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。# -*- coding:utf-8 -*-# class TreeLinkNode:# def __init__(self, x):# self.val = x# self.left = None# ...原创 2019-04-30 15:52:52 · 207 阅读 · 0 评论 -
牛客网习题集——剑指offer面试题第五部分(回溯算法,面向对象编程,双端树)
1给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。# -*- coding:utf-8 -*-class Solution: def multiply(self, A): # write code here ...原创 2019-04-29 19:33:53 · 173 阅读 · 0 评论 -
牛客网习题集——剑指offer面试题第四部分(二叉树遍历总结,list的转换,位运算)
1输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.r...原创 2019-04-20 14:26:56 · 240 阅读 · 0 评论 -
牛客网习题集——剑指offer面试题第四部分(动态规划,二分查找等)
1HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列的和,...原创 2019-04-19 16:31:20 · 187 阅读 · 0 评论 -
牛客网习题集——剑指offer面试题第三部分
1 最小的K个数:输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。分析:可以class Solution: def GetLeastNumbers_Solution(self, tinput, k): #最大堆效率最高 # write code her tinput.sort...原创 2019-04-15 22:29:53 · 155 阅读 · 0 评论 -
牛客网习题集——剑指offer面试题第二部分(17-24)
17输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)# -*- coding:utf-8 -*-# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Nonec...原创 2019-04-08 23:04:09 · 152 阅读 · 0 评论 -
牛客网习题集——剑指offer面试题第一部分(1-16题)
部分代码参考原创 2019-04-08 20:58:22 · 189 阅读 · 0 评论 -
【转载加笔记】01背包问题的Python实现(通俗易懂,超基础讲解,动态规划)
01背包问题一直是笔试题中的高频部分,看到一篇博客讲解的很详细,贴上来跟大家分享下,并说下自己的理解。自己另外加的部分已下划线标记,个人认为重要的部分加粗标记,方便理解。并附带了Python实现。原博地址:https://blog.csdn.net/qq_38410730/article/details/81667885另外,这几个链接也值得一看:https://blog.csdn.n...转载 2019-07-08 21:42:16 · 3663 阅读 · 1 评论