数据结构
数据结构
Harrytsz
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LeetCode Week2 链表专题
LeetCode Week2 链表专题19. 删除链表的倒数第N个节点难度中等833给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。示例:给定一个链表: 1->2->3->4->5, 和 n = 2.当删除了倒数第二个节点后,链表变为 1->2->3->5.说明:给定的 n 保证是有效的。进阶:你能尝试使用一趟扫描实现吗?/*** Definition for singly-linked list.* struct L原创 2020-06-04 20:56:41 · 381 阅读 · 0 评论 -
LeetCode Week 1 二分法专题
LeetCode Week 1 二分法专题69. x 的平方根难度简单410实现 int sqrt(int x) 函数。计算并返回 x 的平方根,其中 x 是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。class Solution {public: int mySqrt(int x) {原创 2020-06-04 20:55:27 · 405 阅读 · 0 评论 -
LeetCode —— Weekly Contest 83
Weekly Contest 831. 较大分组的位置在一个由小写字母构成的字符串 S 中,包含由一些连续的相同字符所构成的分组。例如,在字符串 S = “abbxxxxzyy” 中,就含有 “a”, “bb”, “xxxx”, “z” 和 “yy” 这样的一些分组。我们称所有包含大于或等于三个连续字符的分组为较大分组。找到每一个较大分组的起始和终止位置。最...原创 2020-03-14 17:27:06 · 672 阅读 · 0 评论 -
分治法解决最大子数组问题
问题:输入一个整形数组(有正数也有负数),数组中连续的、一个或多个元素组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。输入: 测试数组1, -2, 3, 10, -4, 7, 2, -5;输出: 最大子数组为3, 10, -4, 7, 2;输出最大子数组的和为18 。1.蛮力法求解总体思路:蛮力法是最简单的实现方法,只要列出数组所有可能的组合,然后找出其中和最大的组合即...原创 2019-09-26 14:34:26 · 607 阅读 · 0 评论 -
求和问题总结
文章目录题目列表问题描述注意事项一、2 sum 解法二、3 sum 解法三、3 sum closest 解法四、3 sum Smaller 解法五、4 sum 解法六、K sum 解法引用题目列表2 sum2 sum II - input array is sorted2 sum III - data structure design3 sum3 sum closest3 sum ...原创 2019-09-24 15:47:49 · 702 阅读 · 0 评论 -
K 数之和总结
文章目录1. Two Sum2. Three Sum3. Four Sum4. K SumProblem:Example:Note:1. Two Sum题目: https://leetcode-cn.com/problems/two-sum/description/给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示...原创 2019-09-24 11:35:20 · 1166 阅读 · 0 评论 -
kuangbin带你飞系列目录与简介
kuangbin带你飞系列是由ACM圈内的一个菊苣,上海大学的邝斌(现已研究生毕业,就职于谷歌),在vjudge平台上建立的一个题目系列,从最简单的暴力搜索,到各种高深的算法与数据结构,几乎无所不包,这一套刷下来对于每一位打ACM的人来说都将是一次水平的飞跃。 目录链接:https://cn.vjudge.net/article/187 题目分级及建议顺序链接:ACM 的正确入门方式是什么? ...转载 2019-09-01 22:21:50 · 1041 阅读 · 0 评论 -
字符串算法小结
字符串是编程语言中表示文本的数据类型。许多字符串的问题,比如DP,统计方案数等,本质上都是要先解决字符串匹配问题。本篇主要讲解5种算法:哈希法(最直观的方法)KMP算法(最基础的方法)扩展KMP算法(KMP 算法的扩展)Manacher算法(解决回文串问题)AC自动机(Trie + KMP) 将从算法的基础概念切入,循序渐进详解算法处理与实现,助你系统学习。其间还会穿插经典例题...原创 2019-07-22 16:24:35 · 541 阅读 · 0 评论 -
我的算法学习之路
文章目录关于这篇文章讲了什么?初学《数据结构与算法分析——C 语言描述》入门《微软的梦工厂》《算法设计与分析基础》《算法引论》巩固百度实习面试《Elements of Programming》《C Interfaces and Implementation》应用LL(k)拼音索引快速字符串匹配《Writing Efficient Programs》提高《Algorithm Design Manua...原创 2019-03-24 19:09:17 · 775 阅读 · 0 评论 -
链表(Java)
第 3 章 链表(Java)文章目录第 3 章 链表(Java)3.1 什么是链表3.2 链表抽象数据类型3.3 为什么要用链表3.4 数组概述3.5 链表、数组和动态数组的比较3.6 单向链表3.1 什么是链表链表是一种用于存储数据集合的数据结构。链表有以下属性:相邻元素之间通过指针连接;最后一个元素的后继指针值为 NULL;在程序执行过程中,链表的长度可以增加或缩小;链表的空...原创 2019-01-10 00:40:18 · 470 阅读 · 0 评论 -
数据结构与算法 Python 语言实现 课后答案
第 1 章 课后练习答案Excercise1.12 练习R-1.1 编写一个Python函数 is_multiple(n, m),用来接收两个整数值 n 和 m,如果 n 是 m 的倍数,即存在整数 i 使得 n = mi,那么函数返回 True,否则返回 False:def is_multiple(n, m): return (n % m == 0)is_multiple(4...原创 2019-01-25 14:43:14 · 22676 阅读 · 17 评论 -
算法与数据结构+一点点ACM从入门到进阶吐血整理推荐书单(珍藏版)
前言:技术书阅读方法论一.速读一遍(最好在1~2天内完成)人的大脑记忆力有限,在一天内快速看完一本书会在大脑里留下深刻印象,对于之后复习以及总结都会有特别好的作用。对于每一章的知识,先阅读标题,弄懂大概讲的是什么主题,再去快速看一遍,不懂也没有关系,但是一定要在不懂的地方做个记号,什么记号无所谓,但是要让自己后面再看的时候有个提醒的作用,看看第二次看有没有懂了些。二.精读一遍(在2周内看完...转载 2018-12-27 18:57:31 · 741 阅读 · 1 评论 -
[Python] BFS和DFS算法(第3讲)—— 从BFS到Dijkstra算法
在 BFS 中:Dijska 算法中使用优先队列:A 到 F 最短路径为:Dijkstra 代码如下:graph = { "A" : {"B":5, "C":1}, "B" : {"A":5, "C":2, "D":1}, "C" : {"A":1, "B"原创 2018-11-18 23:12:44 · 1099 阅读 · 0 评论 -
Python 实现 BFS 和 DFS
# BFSgraph = { "A" : ["B", "C"], "B" : ["A", "C", "D"], &原创 2018-11-18 20:20:03 · 2670 阅读 · 0 评论 -
前缀、中缀、后缀表达式(逆波兰表达式)
前缀、中缀、后缀表达式(逆波兰表达式) 前缀、中缀、后缀表达式(逆波兰表达式)介绍前缀表达式、中缀表达式、后缀表达式都是四则运算的表达方式,用以四则运算表达式求值,即数学表达式的求职中缀表达式简介中缀表达式就是常见的运算表达式,如(3+4)×5-6前缀表达式简介前缀表达式又称波兰式,前缀表达式的运算符位于操作数之前比如:-...转载 2018-11-08 23:05:00 · 429 阅读 · 0 评论 -
Python实现二叉树的建立以及遍历(递归前序、中序、后序遍历,队栈前序、中序、后序、层次遍历)
class Node: def __init__(self,data): self.data=data self.lchild=None self.rchild=Noneclass Tree: def __init__(self): self.queue=[]#利用队列存储树的节点 self.fla...转载 2018-11-09 15:00:37 · 601 阅读 · 0 评论 -
剑指offer——python实现(面试必备)
原文:http://blog.csdn.net/u012505432/article/details/52071537特别感谢原文作者,转载过来,深入研究!2017年8月28日,开始刷题从剑指offer开始,python实现...转载 2018-09-17 00:24:16 · 591 阅读 · 0 评论 -
HashMap,LinkedHashMap,TreeMap的有序性
HashMap 是将 Key 做 Hash 算法,然后将 Hash 值映射到内存地址,直接取得 Key 所对应的数据。在 HashMap 中,底层数据结构使用的是数组,所谓的内存地址即数组的下标索引。HashMap 的高性能需要保证以下几点:Hash 算法必须是高效的;Hash 值到内存地址 (数组索引) 的算法是快速的;根据内存地址 (数组索引) 可以直接取得对应的值。HashMap 实际上是一...转载 2018-07-11 08:53:07 · 227 阅读 · 0 评论 -
栈的应用
由于栈结构具有后进先出的固有特性,致使栈称为程序设计中的有用工具。1.数制转换十进制数N和其他d进制数的转换是计算机实现计算的基本问题,其解决方法很多,其中一个简单算法基于下列原理:N = (N div d) * d + N mod d(其中:div为整除运算,mod为求余运算)例如,(2007)10 = (3727)8,其运算过程如下:可以看到上述过程是从低位到高位产生8进制的各个数位,然后从高...转载 2018-06-18 16:51:31 · 364 阅读 · 0 评论
分享