数据结构与算法之leetcode
文章平均质量分 73
hufanglei007
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据结构和算法以及leetcode002 整理
第二章:栈和队列 今天要复习的内容是栈和队列,栈是一种常见的数据结构,栈的基本特征是先进后出,相当于大家一起排队走进死胡同。栈的实现可以是数组的形式,也可以是链表的形式,但是作为主要的数据结构C++中已经封装成了stack(因此作为主要的数据结构没有必要再去手动实现了),这里对C++中栈的主要成员函数进行总结;stack s{...};//通过列表初始化栈 s.empty();//判断栈是否为空原创 2018-01-30 22:50:12 · 500 阅读 · 0 评论 -
数据结构与算法 leetcode 刷题010
关于优先队列的数据结构:优先队列的底层实现是堆;下面介绍一下堆数据结构:堆数据结构是由数组构建的,最大堆:所有非叶子节点值都大于等于其左右孩子结点的值;最小堆:所有非叶子节点值都小于等于左右孩子结点的值;如何构建一个堆;伪代码如下(为了方便起见,数组的第一个元素的索引是1开始的)1.首先得到相应的左结点和右结点的下标索引PARENT(i) return i / 2 LEFT(i) retu...原创 2018-03-13 22:33:21 · 394 阅读 · 0 评论 -
数据结构与算法 刷题leetcode 009
今天的刷题的内容是还是关于队列的数据结构和昨天的一致;今天要讲的是队列和图论算法的应用leetcode 279:Given a positive integer n, find the least number of perfect square numbers (for example, 1, 4, 9, 16, ...) which sum to n.For example, given n ...原创 2018-03-13 19:35:08 · 221 阅读 · 0 评论 -
数据结构与算法以及刷题leetocde 007 查找表 set和map相关
之前都是数组的操作,接下来介绍的数据结构是set,map, set 和map是C++中的容器;首先复习一下set的基本使用,set数据结构内的数据是没有重复数据的,unique#include<set> #include<iostream> using namespace std; int main() { int i; int arr[5] = {0,1,...原创 2018-03-06 19:59:39 · 301 阅读 · 0 评论 -
数据结构与算法 leetcode刷题013 递归和回溯的使用
今天的刷题内容是递归和回溯的应用,递归问题除了在树中的使用外,还有比较常用的使用方式是递归和回溯的使用;废话不多说直接开始刷题,在刷题中体会相应的算法的使用;leetcode17:手机键盘的组合问题class Solution {//C++中没有public和private关键字都是私有变量 private: vector<string> digitstring={""," "...原创 2018-03-20 21:17:52 · 378 阅读 · 0 评论 -
数据结构与算法leetcode 刷题008 栈和队列的内容
今天刷的内容全都是leetcode中栈和队列的使用leetcode20:判断是否是匹配括号等;class Solution { public: bool isValid(string s) { int size=s.length(); if(size%2!=0){ return false; } sta...原创 2018-03-12 08:46:37 · 273 阅读 · 0 评论 -
数据结构与算法以及leetcode刷题 012 二分搜索树
今天刷题的内容是二分搜索树的内容;首先是二分搜索树的概念:二分搜索树是一种高效的二叉树,任何结点的左结点都小于根节点,右节点都大于根节点;具有高效的find功能;二分搜索树的使用在leetcode中也有不少题,下面就对相应的二分搜索树的内容做yield归纳:leetcode235:求一个二分搜索树的最近的公共父亲结点; 使用递归来进行实现算法;class Solution { public: ...原创 2018-03-17 16:15:46 · 378 阅读 · 0 评论 -
数据结构与算法以及数组 leetcode 006刷题
之前的内容涉及的是数组删除的内容的题型,这次内容还是数组只不过思考的方式可能基础算法的合并使用,废话不多说,直接贴题;leetcode 215数组第k大的数,就是求数组中的第k大的数,如果采用一般的解题思路就是从大到小排序,然后取下标为k-1的值,时间复杂度排序的时间复杂度O(nlog(n))算法改进:采用快速排序中的pivot的思路,结合二分法思路class Solution { public:...原创 2018-03-03 17:37:42 · 213 阅读 · 0 评论 -
数据结构与算法继续数组问题leetcode 005
由于数组问题是最常见的 所以继续对数组问题进行相应的求解;leetcode283. Move Zeroes此题是一道简单题,解决方案,class Solution { public: void moveZeroes(vector<int>& nums) { int i=0; int size=nums.size(); ve...原创 2018-03-02 08:35:33 · 176 阅读 · 0 评论 -
数据结构和算法 leetcode链表刷题007
链表数据结构刷题leetcode206: Reverse Linked List 将链表反序class Solution { public: ListNode* reverseList(ListNode* head) { //创建三个指针 ListNode *pre=NULL; ListNode *curr=head; if(...原创 2018-03-09 14:18:57 · 314 阅读 · 0 评论 -
数据结构与算法 -二叉树和递归算法leetcode 刷题011
今天的刷题内容是二叉树和递归的应用:二叉树中的很多题目都可以通过递归的方法进行调用,比如简单的前序遍历,中序遍历,后续遍历等算法的实现,递归调用主要是两个内容,一个是递归的终止条件,另一个是递归循环体;废话不多说直接使用leetcode中的题来练手leetcode104,求一个二叉树的最大深度,class Solution { public: int maxDepth(TreeNode* ...原创 2018-03-16 08:45:29 · 321 阅读 · 0 评论 -
数据结构与算法导论笔记以及leetcode004
继续对leetcode中的数组数据结构的题型进行归纳:本节主要是二分法的使用方式:leetcode33:在一个倒置的数组中寻找相应的元素,返回其索引:思路:使用遍历算法:时间复杂度为O(n)使用二分法查找:变形的二分法查找,通过判断nums[mid]和nums[rights]的大小来判断相应的去取值区间:C++代码如下class Solution { public: int search(...原创 2018-02-16 21:46:49 · 285 阅读 · 0 评论 -
数据结构和算法 以及leetcode整理
第一部分:线性表的学习001 线性表包括数组和链表两种,数组是采用连续的存储空间,数组具有随机存储的特性,什么是随机存储特性,也就是说num[i] 的时间复杂度是O(1),数组的缺点在于:在头部插入时 时间复杂度为O(n),头部删除时时间复杂度为O(n).插入删除的平均时间复杂度为O(n-1/2). 数组是连续的而存储空间,所以存储空间是固定的,遇到存储空间不足的时候需要扩充存储空间,比较原创 2018-01-29 21:28:23 · 903 阅读 · 0 评论 -
数据结构与算法及leetcode上有关数组题目的整理003
今天总结了一下leetcode上数组的题,leetcode上数组的题实在是太多了,这里只对前150题进行了归纳,选择一些比较经典的题总结; leetcode1:Two sum 计算两个数的和等于一个目标结果,传统暴力算法:遍历两次,计算出相应的和,然后用一个vector来保存数据然后返回,时间复杂度为O(n^2); 算法改进:首先将数组进行排序,然后采用两个指针,一个指针指向数组起始的原创 2018-02-02 13:03:37 · 338 阅读 · 0 评论
分享