- 博客(10)
- 收藏
- 关注
原创 二叉树节点和
给定二叉搜索树的根结点 root,返回 L 和 R(含)之间的所有结点的值的和。二叉搜索树保证具有唯一的值。示例 1:输入:root = [10,5,15,3,7,null,18], L = 7, R = 15输出:32示例 2:输入:root = [10,5,15,3,7,13,18,1,null,6], L = 6, R = 10输出:23提示:树中的结点数量最多为 10000...
2019-10-14 22:27:52 481
原创 散表
总结:一、散列表的由来?1.散列表来源于数组,它借助散列函数对数组这种数据结构进行扩展,利用的是数组支持按照下标随机访问元素的特性。2.需要存储在散列表中的数据我们称为键,将键转化为数组下标的方法称为散列函数,散列函数的计算结果称为散列值。3.将数据存储在散列值对应的数组下标位置。二、如何设计散列函数?总结3点设计散列函数的基本要求1.散列函数计算得到的散列值是一个非负整数。2.若...
2019-10-14 20:56:52 336
原创 总结:二分查找(下)
总结:二分查找(下)一、四种常见的二分查找变形问题16|二分查找(下):如何快速定位IP对应的省份地址?file:///J/geektime/唯一更新QQ群170701297/ebook/数据结构与算法之美/16二分查找(下):如何快速定位IP对应的省份地址?.html[2019/2/17 17:27:19]1.查找第一个值等于给定值的元素2.查找最后一个值等于给定值的元素3.查找第一...
2019-10-12 21:11:39 130
原创 总结:二分查找(上)
总结:二分查找(上)一、什么是二分查找?二分查找针对的是一个有序的数据集合,每次通过跟区间中间的元素对比,将待查找的区间缩小为之前的一半,直到找到要查找的元素,或者区间缩小为0。二、时间复杂度分析?1.时间复杂度假设数据大小是n,每次查找后数据都会缩小为原来的一半,最坏的情况下,直到查找区间被缩小为空,才停止。所以,每次查找的数据大小是:n,n/2,n/4,…,n/(2k),…,这是...
2019-10-11 20:36:45 206
原创 总结:如何实现一个通用的高性能的排序函数?
总结:如何实现一个通用的高性能的排序函数?一、如何选择合适的排序算法?1.排序算法一览表时间复杂度 是稳定排序? 是原地排序?冒泡排序 O(n^2) 是 是插入排序 O(n^2) 是 是选择排序 O(n^2) 否 是快速排序 O(nlogn) 否 是归并排序 O(nlogn) 是 否桶排序 O(n) 是 否计数排序 O(n+k),k是数据范围 是 否基数排序 O(dn),d是...
2019-10-11 20:34:29 164
原创 总结:桶排序、计数排序、基数排序
总结:桶排序、计数排序、基数排序一、线性排序算法介绍1.线性排序算法包括桶排序、计数排序、基数排序。2.线性排序算法的时间复杂度为O(n)。3.此3种排序算法都不涉及元素之间的比较操作,是非基于比较的排序算法。4.对排序数据的要求很苛刻,重点掌握此3种排序算法的适用场景。二、桶排序(Bucket sort)1.算法原理:1)将要排序的数据分到几个有序的桶里,每个桶里的数据再单独进行...
2019-10-10 19:47:06 93
原创 第一题
给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。class Solution:def twoSum(self, nums: List[int], target: int) -> List[int]:for i in range(0,...
2019-10-09 22:48:55 109
原创 排序
一、排序方法与复杂度归类(1)几种最经典、最常用的排序方法:冒泡排序、插入排序、选择排序、快速排序、归并排序、计数排序、基数排序、桶排序。(2)复杂度归类冒泡排序、插入排序、选择排序 O(n^2)快速排序、归并排序 O(nlogn)计数排序、基数排序、桶排序 O(n)二、如何分析一个“排序算法”?<1>算法的执行效率最好、最坏、平均情况时间复杂度。时间复杂度的系数、...
2019-10-09 22:11:35 112
原创 递归
一、什么是递归?1.递归是一种非常高效、简洁的编码技巧,一种应用非常广泛的算法,比如DFS深度优先搜索、前中后序二叉树遍历等都是使用递归。2.方法或函数调用自身的方式称为递归调用,调用称为递,返回称为归。3.基本上,所有的递归问题都可以用递推公式来表示,比如f(n) = f(n-1) + 1;f(n) = f(n-1) + f(n-2);f(n)=n*f(n-1);二、为什么使用递归...
2019-10-09 22:08:57 91
原创 单链表反转
链表代码python单链反转插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入python单链反转链表的翻转是程序员面试中出现频度最高的问题之一,常见的解决方法分为递归和迭代两...
2019-10-05 11:09:28 113
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人