为了能到远方,脚下的每一步都不能少|

王寄鱼

园龄:4年3个月粉丝:5关注:1

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

力扣-34-在排序数组中查找元素的第一个和最后一个位置
摘要:一、题目 力扣地址:https://leetcode.cn/problems/find-first-and-last-position-of-element-in-sorted-array/description/ 二、解法思路: 也是二分查找相关题目,详细解法看注释 from typing imp
14
0
0
力扣-35-搜索插入位置
摘要:一、题目 力扣地址:https://leetcode.cn/problems/search-insert-position/ 二、解法思路 与标准的二分查找一直,唯一的区别为,若所需target不在nums中,需要找到insert的索引 from typing import List class S
19
0
0
力扣-704-二分查找
摘要:一、题目 力扣链接:https://leetcode.cn/problems/binary-search/description/ 二、解法思路 标准的二分查找题目,常规上有左闭右闭和左闭右开的解法 1、左闭右闭 class Solution: """ leetcode:704 采用左闭右闭的方式,
20
0
0
寻找数组的中心下标
摘要:# 一、问题描述 给你一个整数数组 nums ,请计算数组的 中心下标 。 数组 中心下标 是数组的一个下标,其左侧所有元素相加的和等于右侧所有元素相加的和。 如果中心下标位于数组最左端,那么左侧数之和视为 0 ,因为在下标的左侧不存在元素。这一点对于中心下标位于数组最右端同样适用。 如果数组有多个
27
0
0
手写ES6.0-flat()
摘要:# 一、问题描述 ``` 已有多级嵌套数组 : [1, [2, [3, [4, 5]]], 6] 将其扁平化处理,输出: [1,2,3,4,5,6] ``` # 二、详细描述 题目表示对于一个多维的数组,需要构建一个方法,将其直接转化为一个一维数组的输出 # 三、解法思路 ## (一)递归 ###
14
0
0
加权图与非加权图
摘要:1.加权图,非加权图 说白了,就是在有向图的边上加上数字,这个数字可以代表很多东西,如果边代表路径,那么数字可以代表这个边的长度。同时这个数字有专门的术语,叫做权重。要计算非加权图中的最短路径,可使用广度优先搜索。要计算 加权图中的最短路径,可使用狄克斯特拉算法。 2.狄克斯特拉算法 狄克斯特拉算法
2416
0
0
摘要:1.有向图 图也是一种常用到的数据结构,图分有向图和无向图。其中有向图,同时,树其实是一种特殊的有向图。 有下面一个问题,我们需要出售芒果,需要联系朋友们找芒果商。 在构建图算法的时候需要注意,我们需要标记某个元素是不是已经被查找过了,不然的话可能会造成死循环。比如下面的情况,你的朋友是peggy,
97
0
0
散列表
摘要:散列表是一种非常常用的数据结构,在python中,字典与集合的底层实现都是散列表,也叫hash表。 1.散列函数 想要了解散列表首先需要知道散列函数,散列函数的使用非常简单,当你传入一个不可变类型的数据,他会返回一个固定的数字,并且他满足如下的条件 1.散列函数的结果必须是一致的,例如,在你输入ap
138
0
0
基于python-快速排序
摘要:快速排序是一种很常用的排序算法,一般来说我们使用递归来实现它,从效率来说,快速排序不算快(时间复杂度O(n^2)),但是因为使用递归很好编写,容易理解,并且如果结合二分法的话可以把时间复杂度提到O(nlongn),这是一个还能接受的复杂度。 下面使用递归实现一个简单的sum函数,为下面的快速排序做为
103
0
0
python实现简单的统计
摘要:实现功能如下: 对于一串给定的纯数字字符串,实现统计相邻的相同数字,用中文输出,如下:、 输入:'11223345' 输出:2个一,2个二,2个三,1个四,1一五 输入:'11223345112233' 输出:2个一,2个二,2个三,1个四,1个五,2个一,2个二,2个三 代码: class MyC
600
0
0
利用python实现单向链表
摘要:一、单向链表 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列节点组成,节点可以在运行时动态生成,链表利用节点来存储数据,节点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。 单向链表即一条线性链表,只能
200
0
0
利用python实现动态数组
摘要:一、数组 说动态数组之前,首先要说数组,数组是一种顺序存储的线性表,所有元素的内存地址都是连续的。数组的最大优点是他的查找时间复杂度能够达到O(1),但是增和删的时间复杂度较高O(n) 二、动态数组 动态数组,即根据用户的输入动态扩充或缩小当前数组的容量。在python中,已经内置了动态数组,叫做列
1955
0
0
点击右上角即可分享
微信分享提示
深色
回顶
收起