
算法与数据结构
yealxxy
一直学习计算机,了解互联网发展趋势。
展开
-
计算算法的时间复杂度
时间复杂度主要的计算方法原创 2016-10-23 22:45:06 · 1136 阅读 · 0 评论 -
单链表(内部循环的问题)
寻找单链表内部循环原创 2017-09-17 15:08:30 · 393 阅读 · 0 评论 -
动态规划理解
动态规划原创 2017-09-18 11:03:06 · 781 阅读 · 1 评论 -
摩尔投票算法( Boyer-Moore Voting Algorithm)
摩尔投票算法也可以叫做多数投票算法,是我在看到 leetcode 169(Majority Element)题目时看到的算法。这篇文章从 leetcode 169(Majority Element)出发讲解摩尔投票算法的原理和优势,同时从 leetcode 229(Majority Element2)出发讲解摩尔投票算法的改进和推广。(本文所有代码都是python代码)一、Majority E原创 2018-02-01 16:29:59 · 16859 阅读 · 0 评论 -
数组的子集集合
这篇文章是寻找数组的所有子集的集合,例如nums=[1,2],子集集合为[[],[1],[2],[1,2]]。这个题目来自于leetcode78. Subsets。一,动态规划思想:状态:前面i个数的子集集合res1状态转移方程:前面i+1个数的子集集合res2 = 前面i个数的子集集合res1 + res1所有项添加第i+1个数的集合cur代码:res = [[]] f原创 2018-02-02 12:25:50 · 1634 阅读 · 0 评论 -
python有序遍历dict(字典)
大家都知道dict是无序的,这篇文章介绍dict的有序遍历。这里我们主要用到一个python的方法sorted()。一,sorted()方法介绍:内建函数sorted方法,可以对所有可迭代的对象进行排序操作。 1,方法-sorted(iterable, key=None, reverse=False):iterable,可以看到其中第一个参数是可迭代对象;key,主要是用来进行比较的原创 2018-02-07 16:37:07 · 17900 阅读 · 0 评论 -
递归原理解析
大部分的人对递归的理解可能停留在递归编程:递归(recursion)就是子程序(或函数)直接调用自己或通过一系列调用语句间接调用自己。这篇文章会从递归编程出发一步步了解递归原理。一、递归编程:递归(recursion)就是子程序(或函数)直接调用自己或通过一系列调用语句间接调用自己,是一种描述问题和解决问题的基本方法。1,采用递归方法的原因:递归通常用来解决结构自相似的问题。所谓结构自...原创 2018-02-14 14:27:27 · 11751 阅读 · 0 评论 -
Python中的defaultdict方法
python中的dict是一个重要的数据类型,知道如何使用这个数据类型很简单,但是这个类型使用过程中容易进入一些误区,这篇文章主要对defaultdict方法的讲解,深入的了解dict数据类型。字典(dictionary)数据类型,不同于其他由数字索引的序列,字典是用”键”(key)来索引的。通常表示为dict(key: val, …),有以下特征:键可以是任何不可变(immutable...原创 2018-02-19 23:12:44 · 53117 阅读 · 5 评论 -
如何深度理解回溯法,让它变得简单
这篇文章主要是想深入浅出的讲解回溯法,会从回溯法的原理上分析,也会从应用的角度的分析回溯法的使用。一、回溯法怎么理解回溯法的解释:深度优先搜索法,又称为试探法,实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径,满足回溯条件的某个状态的点称为“回溯点”。(多读几遍,你会发现这涵盖了回溯法的全部类容,如果不能理解看完...原创 2019-07-12 23:24:07 · 3284 阅读 · 1 评论