![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
Deephome
know yourself, know the world.
展开
-
螺旋矩阵 Spiral Matrix
目录问题描述边界索引C++问题描述Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral order.Example 1:Input:[[ 1, 2, 3 ],[ 4, 5, 6 ],[ 7, 8, 9 ]]Output: [1,2,3,6,9,8,7,4,5]边界索引依次遍历外围的数值,每次遍历一行或者一列之后,需要调整边界大小(up,do原创 2020-05-09 12:24:35 · 243 阅读 · 0 评论 -
对角线遍历 Diagonal Traverse
目录问题描述对角线迭代和翻转PythonC++问题描述Given a matrix of M x N elements (M rows, N columns), return all elements of the matrix in diagonal order as shown in the below image.Example:Input:[[ 1, 2, 3 ],[ 4,...原创 2020-05-07 15:35:44 · 432 阅读 · 0 评论 -
加一 Plus One
目录题目描述类型转换Python倒序遍历C++题目描述Given a non-empty array of digits representing a non-negative integer, plus one to the integer.The digits are stored such that the most significant digit is at the head o...原创 2020-05-05 10:42:27 · 193 阅读 · 0 评论 -
删除排序数组中的重复项 Remove Duplicates from Sorted Array
目录题目描述双指针法PythonC++题目描述Given a sorted array nums, remove the duplicates in-place such that each element appear only once and return the new length.Do not allocate extra space for another array, you...原创 2020-05-03 12:22:44 · 133 阅读 · 0 评论 -
两数之和 Two Sum
目录问题描述暴力解决Pythonc++利用哈希表PythonC++问题描述Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one s...原创 2020-05-03 11:21:30 · 754 阅读 · 0 评论 -
[数据结构学习] 第三章 线性表(3)
6 静态链表6.1 基本概念在一些没有指针的编程高级语言(比如Basic,Fortran)中,可以使用数组来代替指针,来描述单链表。数组的元素都是由两个数据域组成,data和cur。游标cur相当于单链表中的next指针,存放该元素的后继在数组中的下标。我们把这种用数组描述的链表叫做静态链表,或游标实现法。存储结构-数组第一个和最后一个元素作为特殊元素处理,不存数...原创 2019-09-07 20:56:08 · 129 阅读 · 0 评论 -
[数据结构学习] 第三章 线性表(2)
4 线性表的链式存储结构4.1 基本概念链式存储结构,即链表,由节点(Node)链接而成,每个节点包括数据域和指针域。链表特点是,可以由一组任意的存储单元(可以不是连续的)存储链表的数据元素。-头指针是链表中第一个节点的存储位置,最后一个节点指针为“空”有时,为了链表操作方便,会在第一个节点前添加一个头结点,头结点指针指向链表的第一个节点无头结点链表图示有头结点链表图示空...原创 2019-09-06 17:46:09 · 139 阅读 · 0 评论 -
[数据结构学习] 第三章 线性表(1)
本章主要介绍线性表的定义,抽象数据类型,两种存储结构(顺序和链式)及其操作等。线性表是数据结构中最常用,最简单的一种结构。1 定义1.1 基本定义线性表(list):是零个或多个数据元素的有限序列。线性表长度 : 线性表中元素个数空表:长度为0的线性表位序:某个元素在线性表中的位置排序,比如 aia_iai的位序为iii。1.2 特点有序性,即序列中元素之间是有顺序的,...原创 2019-09-03 16:56:06 · 280 阅读 · 0 评论 -
[数据结构学习] 第二章 算法
本章主要介绍了算法与数据结构的关系,算法的基本概念,特点和复杂度的分析方法。1 基本概念1.1 算法的定义: 算法是解决特定问题求解步骤的描述,在计算机中为指令的有限序列,并且每条指令表示一个或多个操作。1.2 算法的特性: 有穷性、确定性、可行性、输入、输出。1.3 算法的设计的要求: 正确性、可读性、健壮性、高效率和低存储量需求。1.4 算法特性与算法设计容易混,需要对比记忆。1....原创 2019-04-02 17:38:15 · 398 阅读 · 0 评论 -
[LeetCode] Median of Two Sorted Arrays 两个有序数组的中位数
题目There are two sorted arrays nums1 and nums2 of size m and n respectively.Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).You may assume nums1 and ...原创 2019-03-28 17:01:00 · 162 阅读 · 0 评论 -
[数据结构学习] 第一章 数据结构绪论
1.数据结构的起源1.1 数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科。1.2 1968 年,美国的高德纳 ( Donakl E. Knuth ) 教授在其所写的 《计算机程序的艺术》 第一卷 《基本算法》1.3 程序设计 = 数据结构 + 算法2. 数据的基本概念2.1 数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算...原创 2019-03-30 15:40:15 · 225 阅读 · 0 评论 -
[LeetCode] Maximum Depth of Binary Tree 二叉树的最大深度
题目Given a binary tree, find its maximum depth.The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.Note: A leaf is a node with no childr...转载 2019-03-18 21:23:43 · 482 阅读 · 0 评论 -
剑指Offer66题之19-24
第19题:顺时针打印矩阵题目输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。解析根据当前索引位置,采用不同的移动方式class Solution {public: vector<int> printMatrix(vector<vector<int> > matrix)原创 2019-03-18 15:41:40 · 181 阅读 · 0 评论 -
[LeetCode] Longest Substring Without Repeating Characters 最长无重复字符的子串
题目Given a string, find the length of the longest substring without repeating characters.Example 1:Input: “abcabcbb”Output: 3Explanation: The answer is “abc”, with the length of 3.Example 2:Inpu...原创 2019-03-21 17:54:01 · 155 阅读 · 0 评论 -
剑指Offer66题之13-18
第13题:调整数组顺序使奇数位于偶数前面题目输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。解析如果这题没有加粗的这个条件,这是一个原版微软笔试题。设置两个指针head和tail,分别指向首尾,head向后移动,直到找到第一个偶数,tail向前移动,直到找到第一...原创 2019-03-11 18:42:55 · 117 阅读 · 0 评论 -
[LeetCode] Add Two Numbers 两个数字相加
题目You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and retur...原创 2019-03-19 22:15:11 · 146 阅读 · 0 评论 -
[LeetCode] Two Sum 两数之和
题目Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution, and you may not use the sam...原创 2019-03-19 20:24:59 · 270 阅读 · 0 评论 -
剑指Offer66题之7-12
第一题:斐波那契数列题目大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。n<=39。解析斐波那契数列的定义:F0=0,F1=1F_0 = 0, F_1 = 1F0=0,F1=1 ;Fn=Fn−1+Fn−2(n≥2)F_n = F_{n-1} + F_{n-2} ( n \geq 2)Fn=Fn−1+Fn−2(n≥2)可以从F0...原创 2019-03-10 12:08:08 · 133 阅读 · 0 评论 -
剑指Offer66题之1-6
剑指Offer66题之1-6第一题: 二维数组中的查找题目解析备注第二题 : 替换空格题目解析备注第三题 : 从尾到头打印链表题目:解析:备注第四题 : 重建二叉树题目解析备注第五题 : 用两个栈实现队列题目解析备注第六题: 旋转数组的最小数字题目解析第一题: 二维数组中的查找题目在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入...原创 2019-03-08 21:18:56 · 290 阅读 · 0 评论