算法
文章平均质量分 94
一些算法知识点
68岁爱用飘柔
纵有疾风起,人生不言弃.
展开
-
python的十大经典排序算法
十大经典排序算法该文章参照菜鸟教程,也有自己的部分理解。一、简介排序算法是《数据结构与算法》中最基本的算法之一。排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。用一张图概括:关于时间复杂度:平方阶 (O(n2)) 排序 各类简单排序:直接插入、直接选择和冒泡排序。线性对原创 2021-03-05 14:40:23 · 4005 阅读 · 4 评论 -
leetcode:存在重复数组合题123
Leetcode重复元素相似题解法题目链接:217. 存在重复元素219. 存在重复元素 II220. 存在重复元素 III一、重复元素I题目:给定一个整数数组,判断是否存在重复元素。如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。解法:该题的解题方法比较多,这里列举三种:1.1 利用list函数我们只需要先判断该元素是否存在list集合中,如果存在,直接直接返回false,如果不存在,那么将这个数添加到list的末尾,进行下一原创 2020-12-15 22:08:57 · 179 阅读 · 0 评论 -
leetcode:存在重复元素
存在重复元素leetcode链接:217. 存在重复元素给定一个整数数组,判断是否存在重复元素。如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false 。示例1:输入: [1,2,3,1]输出: true示例2:输入: [1,2,3,4]输出: false示例3:输入: [1,1,1,3,3,4,3,2,4,2]输出: true这题的思路很简单,利用set函数即可去重代码也非常简单这里举两个版本 # 代码1 de原创 2020-12-14 00:22:20 · 226 阅读 · 0 评论 -
leetcode: 十-二进制数的最少数目
十-二进制数的最少数目leetcode链接:5626. 十-二进制数的最少数目如果一个十进制数字不含任何前导零,且每一位上的数字不是 0 就是 1 ,那么该数字就是一个 十-二进制数 。例如,101 和 1100 都是 十-二进制数,而 112 和 3001 不是。给你一个表示十进制整数的字符串 n ,返回和为 n 的 十-二进制数 的最少数目。示例1输入:n = "32"输出:3解释:10 + 11 + 11 = 32示例2输入:n = "82734"输出:8示例3输入:n =原创 2020-12-13 23:38:40 · 308 阅读 · 0 评论 -
leetcode:两数之和
两数之和Leetcode链接:两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]方法一、第一种方法,不多说可以直接暴力搜索(但是基本上会超时的):第一个指针,从第一个元素原创 2020-12-13 23:13:56 · 95 阅读 · 0 评论 -
leetcode:面试题 16.26. 计算器
Python:面试题 16.26. 计算器 题目地址:Leetcode面试题 16.26. 计算器给定一个包含正整数、加(+)、减(-)、乘()、除(/)的算数表达式(括号除外),计算其结果。表达式仅包含非负整数,+, - ,、/ 四种运算符和空格 。 整数除法仅保留整数部分。示例1输入: "3+2*2"输出: 7示例2输入: " 3/2 "输出: 1示例3输入: " 3+5 / 2 "输出: 5方法一、原创 2020-12-13 22:46:00 · 220 阅读 · 0 评论 -
Python手撕广度优先遍历
广度优先遍历1.图1.1有向图1.2 无向图2.广度优先遍历3.手撕代码3.1 创建graph表3.2 创建队列3.3创建判断函数3.4 检查代码4.完整代码在谈广度优先遍历之前,我们需要知道图是什么。1.图 图(graph)是表示物件与物件之间关系的数学对象,是图论的基本研究对象,图由节点(node)和边(edge)组成。图分为两种:1.有向图、2.无向图。1.1有向图 有向图就类似于我们去打牌,如果A欠B5元,则有一条线段从A指向B,如果B欠A5元,那么就又有一条线由B指向A,这个5元原创 2020-11-17 20:04:26 · 294 阅读 · 1 评论 -
Python数据结构:collections模块
Collections模块 在Python中,有一个很神奇的库存在:Collections,它提供了一些额外的数据结构,比如:Counter:计数器,用于统计元素的数量OrderedDict:有序字典defaultdict:带有默认类型的字典ChainMap:创建多个可迭代对象的集合。类字典类型namedtuple:可命名元组,通过名字来访问元组元素deque:双向队列,队列头尾都可以放,也都可以取(与单向队列对比,单向队列只能一头放,另一头取)1.__init__.py'''Th原创 2020-11-17 17:22:22 · 283 阅读 · 1 评论 -
c语言的链表
链表图注:结点名:a,b,c结点的值域:1,2,3,4结点的链域:b,c,d,e^表示null讲解:a->next的值为b结点的存储ida->data的值为他的值域是1f->next的值为空,是NULL。实例一:已知b和c结点,然后删除c结点b->next=c->next;**意义:**根据上面的讲解,因为b的链域存的是c,要删除c我们只需...原创 2020-03-22 15:37:58 · 252 阅读 · 0 评论 -
算法心得(1)
一、回溯算法利用递归和for循环进行回溯算法 ,让整个程序去遍历所有的可能结果,for i in range(4):#a层会从0开始先判断0是否符合条件,符合了则进入b层,如果b不符合就放弃下面的所有,返回a层,在a层从0的下一个元素开始继续判断是否符合条件典型题目:2n皇后在知道2n皇后之前可以先看看n皇后的代码n皇后:n = int(input())ans = []temp...原创 2020-03-03 17:07:20 · 241 阅读 · 0 评论