• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
tanshoudong
博客园 首页 新随笔 联系 订阅 订阅 管理

随笔分类 -  数据结构与算法

上一页 1 2 3 4 下一页

 
桶排序
摘要:桶排序的基本思想是:把数组 arr 划分为n个大小相同子区间(桶),每个子区间各自排序,最后合并。计数排序是桶排序的一种特殊情况,可以把计数排序当成每个桶里只有一个元素的情况。 针对输入数据均匀分布的特点,因此将数据分布的区间可以均匀分为n个子区间。那么就有: max - min = n * wid 阅读全文
posted @ 2018-11-11 19:56 tanshoudong 阅读(230) 评论(0) 推荐(0)
给定两个数组,这两个数组是排序好的,让你求这两个数组合到一起之后第K大的数。
摘要:题目:给定两个数组,这两个数组是排序好的,让你求这两个数组合到一起之后第K大的数。 解题思路: 首先取得数组a的中位数a[aMid],然后在b中二分查找a[aMid],得到b[bMid],b[bSt]到b[bMid]的数小于等于a[aMid],b[bMid+1]到b[bEd]大于等于a[aMid], 阅读全文
posted @ 2018-11-09 17:22 tanshoudong 阅读(889) 评论(0) 推荐(0)
最长递增子串的长度
摘要:def binary_search(nums,key): if len(nums)<1: return -1 high=len(nums)-1 low=0 while low<=high: mid=(low+high)//2 if low<=high and nums[mid]>key: high= 阅读全文
posted @ 2018-10-30 11:21 tanshoudong 阅读(289) 评论(0) 推荐(0)
复杂链表的复制
摘要:解题思路:思路:第一步在原链表的基础上复制节点,将节点复制在原节点的后面。第二步复制随机节点。 第三步将新旧链表分离。 代码如下: 阅读全文
posted @ 2018-10-26 15:26 tanshoudong 阅读(185) 评论(0) 推荐(0)
二叉排序数转化双向链表
摘要:解题思路:中序遍历是有序的。使用了一个指针来保存链表的最后的节点。每次中序遍历到了根节点,就把根节点添加到了中序遍历的链表的末尾。这样遍历结束就能得到了一个中序有序的链表。最后再利用末尾指针逆序找到头结点即可。 代码如下: 阅读全文
posted @ 2018-10-26 11:18 tanshoudong 阅读(188) 评论(0) 推荐(0)
字符串的全排列
摘要:解体思路::将求字符串的全排列分解为两步: 第一步是确定第一个位置的字符,就是第一个位置与后边的所有字符进行交换。 第二步,就是对除了第一个位置的后边所有位置的字符进行相同处理;直至剩下一个字符,打印; 代码如下: 阅读全文
posted @ 2018-10-25 22:25 tanshoudong 阅读(296) 评论(0) 推荐(0)
合并k个有序数组
摘要:给定K个有序数组,每个数组有n个元素,想把这些数组合并成一个有序数组 可以利用最小堆完成,时间复杂度是O(nklogk),具体过程如下: 创建一个大小为n*k的数组保存最后的结果创建一个大小为k的最小堆,堆中元素为k个数组中的每个数组的第一个元素重复下列步骤n*k次:每次从堆中取出最小元素(堆顶元素 阅读全文
posted @ 2018-10-25 11:20 tanshoudong 阅读(8379) 评论(0) 推荐(1)
LeetCode子集问题
摘要:给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(子集当中不包括重复的元素) 代码如下: 输出如下: 给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(子集当中包括重复的元素) 代码如下: 输出如下: 阅读全文
posted @ 2018-10-24 22:42 tanshoudong 阅读(724) 评论(0) 推荐(0)
面试题-求最大字典区间
摘要:给定一组字符串,求最大字典区间 输入输出 阅读全文
posted @ 2018-10-24 22:00 tanshoudong 阅读(246) 评论(0) 推荐(0)
链表快速排序
摘要:class Node: def __init__(self, x, next=None): self.value=x self.next=next def Qsort(head, tail): if head==None or tail==None or head==tail: return first=head ... 阅读全文
posted @ 2018-10-17 23:28 tanshoudong 阅读(475) 评论(0) 推荐(0)
树的非递归遍历
摘要:def pre_order_stack(self,root): #堆栈实现前序遍历(非递归) if not root: return myStack = [] node = root while myStack or node: while node: #从... 阅读全文
posted @ 2018-10-16 09:58 tanshoudong 阅读(186) 评论(0) 推荐(0)
快速排序非递归实现
摘要:def quick_sort(arr): ''''' 模拟栈操作实现非递归的快速排序 ''' if len(arr) index + 1: stack.append(r) stack.append(index + 1) def partition(arr, start, end): # 分区操作,返回基... 阅读全文
posted @ 2018-10-14 10:20 tanshoudong 阅读(790) 评论(0) 推荐(0)
python实现图的遍历(递归和非递归)
摘要:class graph: def __init__(self,value): self.value=value self.neighbors=None # 图的广度优先遍历 # 1.利用队列实现 # 2.从源节点开始依次按照宽度进队列,然后弹出 # 3.每弹出一个节点,就把该节点所有没有进过队列的邻接点放入队列 # 4.直到队列变空 from queu... 阅读全文
posted @ 2018-10-10 10:52 tanshoudong 阅读(3271) 评论(0) 推荐(0)
2018秋招小红书算法方向在线编程题
摘要:代码如下: 第二题: 代码如下: 阅读全文
posted @ 2018-09-18 23:33 tanshoudong 阅读(456) 评论(0) 推荐(0)
2018秋招360算法方向在线笔试题
摘要:第一题: 代码如下: 第二题: 代码如下: 第三题: 代码如下: 完结 阅读全文
posted @ 2018-09-17 23:24 tanshoudong 阅读(712) 评论(0) 推荐(0)
堆排序python实现
摘要:def MAX_Heapify(heap,HeapSize,root):#在堆中做结构调整使得父节点的值大于子节点 left = 2*root+1 right = left + 1 larger = root if left < HeapSize and heap[larger] < heap[left]: larger = left if... 阅读全文
posted @ 2018-09-16 13:36 tanshoudong 阅读(493) 评论(0) 推荐(0)
2018秋招快手在线笔试编程题
摘要:运行如下: 第二题: 代码如下: 运行如下: 阅读全文
posted @ 2018-09-10 23:17 tanshoudong 阅读(2199) 评论(0) 推荐(0)
2018网易数据挖掘方向在线笔试题
摘要:第一题:斑马条纹,题目如下图. 代码如下: 第二题:住房子:题目如下 代码如下: 运行如下: 第三题:题目如下。 代码如下: 运行如下: 阅读全文
posted @ 2018-09-08 23:39 tanshoudong 阅读(1279) 评论(0) 推荐(0)
秋招在线笔试题
摘要:一层楼共有n级台阶,一次可以上至少1级但是不超过m级台阶,求有多少种不同的上楼方案数。 代码如下: 输入输出: 阅读全文
posted @ 2018-09-07 21:31 tanshoudong 阅读(169) 评论(0) 推荐(0)
2018美团机器学习方向在线笔试编程题
摘要:第一题:无向图 代码如下: 运行结果: 第二题:字符串: # 思路:确定填充每相邻K个0得到的总长度 代码如下: 运行: 阅读全文
posted @ 2018-09-07 16:41 tanshoudong 阅读(1513) 评论(1) 推荐(0)
 

上一页 1 2 3 4 下一页

公告


博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3